diff options
| author | Tomoyuki Sahara <[email protected]> | 2015-11-24 09:54:03 +0900 |
|---|---|---|
| committer | Tomoyuki Sahara <[email protected]> | 2015-11-24 09:54:03 +0900 |
| commit | c9a4091b83b06b20d8e9178ce748d5b101925a2e (patch) | |
| tree | ca2c2673f4c7ed47d0cbacc81f61c855b212a360 /src/file.c | |
| parent | 1f4bd9fd9f0cfc9a67c5fd92f4e5fdde5facf7a1 (diff) | |
| download | mruby-c9a4091b83b06b20d8e9178ce748d5b101925a2e.tar.gz mruby-c9a4091b83b06b20d8e9178ce748d5b101925a2e.zip | |
arguments can be shared strings.
Diffstat (limited to 'src/file.c')
| -rw-r--r-- | src/file.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/file.c b/src/file.c index 9054b67aa..7e2b64c3e 100644 --- a/src/file.c +++ b/src/file.c @@ -298,14 +298,16 @@ mrb_file_s_symlink(mrb_state *mrb, mrb_value klass) #else mrb_value from, to; const char *src, *dst; + int ai = mrb_gc_arena_save(mrb); mrb_get_args(mrb, "SS", &from, &to); - src = mrb_string_value_cstr(mrb, &from); - dst = mrb_string_value_cstr(mrb, &to); + src = mrb_str_to_cstr(mrb, from); + dst = mrb_str_to_cstr(mrb, to); if (symlink(src, dst) < 0) { mrb_sys_fail(mrb, mrb_str_to_cstr(mrb, mrb_format(mrb, "(%S, %S)", from, to))); } + mrb_gc_arena_restore(mrb, ai); #endif return mrb_fixnum_value(0); } |
