aboutsummaryrefslogtreecommitdiffstats
path: root/file.c
diff options
context:
space:
mode:
authornormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-09-21 03:26:47 +0000
committernormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-09-21 03:26:47 +0000
commitdfa336cd7ddc437314f36ce505c29e0e0d93659f (patch)
treebd40ea7c65ac33345fef131f217f5e40ea13e7e6 /file.c
parent5be5db63503251aa900386757e1a46a99b5052ec (diff)
downloadruby-dfa336cd7ddc437314f36ce505c29e0e0d93659f.tar.gz
file.c: clear tmp buffer on failures
Reduces GC malloc pressure (MAXPATHLEN is 4096 on my system), rb_find_file_safe hits this path at least twice every time ruby starts. * file.c (rb_find_file_ext_safe): clear tmp buffer on failure (rb_find_file_safe): ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47664 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'file.c')
-rw-r--r--file.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/file.c b/file.c
index 34b2693430..f6271a3607 100644
--- a/file.c
+++ b/file.c
@@ -5609,6 +5609,7 @@ rb_find_file_ext_safe(VALUE *filep, const char *const *ext, int safe_level)
}
rb_str_set_len(fname, fnlen);
}
+ rb_str_resize(tmp, 0);
RB_GC_GUARD(load_path);
return 0;
}
@@ -5661,6 +5662,7 @@ rb_find_file_safe(VALUE path, int safe_level)
if (rb_file_load_ok(f)) goto found;
}
}
+ rb_str_resize(tmp, 0);
return 0;
}
else {