summaryrefslogtreecommitdiff
path: root/ruby.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-10-18 09:32:02 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-10-18 09:32:02 +0000
commitd68e5dce35ae300f7ea9ce7a0083f2b61392b997 (patch)
treef3c54009d6b7ee77ae7548815dfd86fa13ac4bf1 /ruby.c
parentd08d73b47de238e4136889cf096c58c69be9f760 (diff)
* ruby.c (ruby_init_loadpath_safe): should not dup tmp string. a
patch from neomjp neomjp in [ruby-core:24251]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ruby.c')
-rw-r--r--ruby.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/ruby.c b/ruby.c
index 4f2f7d4b5a..1530306678 100644
--- a/ruby.c
+++ b/ruby.c
@@ -350,8 +350,8 @@ ruby_init_loadpath_safe(int safe_level)
VALUE sopath;
# else
char libpath[MAXPATHLEN + 1];
- size_t baselen;
# endif
+ size_t baselen;
char *p;
#if defined _WIN32 || defined __CYGWIN__
@@ -416,16 +416,13 @@ ruby_init_loadpath_safe(int safe_level)
strlcpy(libpath, ".", sizeof(libpath));
p = libpath + 1;
}
-
- baselen = p - libpath;
-
-#define BASEPATH() rb_str_buf_cat(rb_str_buf_new(baselen+len), libpath, baselen)
#else
rb_str_set_len(sopath, p - libpath);
-
-#define BASEPATH() rb_str_dup(sopath)
#endif
+ baselen = p - libpath;
+#define BASEPATH() rb_str_buf_cat(rb_str_buf_new(baselen+len), libpath, baselen)
+
#define RUBY_RELATIVE(path, len) rb_str_buf_cat(BASEPATH(), path, len)
#else
#define RUBY_RELATIVE(path, len) rubylib_mangled_path(path, len)