diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-12-23 08:57:48 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-12-23 08:57:48 +0000 |
commit | b8fff7a8fb3669e86c2547119dc34e375b098325 (patch) | |
tree | 54a609327994753d5579a07797f199fff86c3dc4 /util.c | |
parent | 4542c5d55399b06226fb983452fe3df86931fad8 (diff) | |
download | ruby-b8fff7a8fb3669e86c2547119dc34e375b098325.tar.gz |
prefer rb_syserr_fail
* file.c, io.c, util.c: prefer rb_syserr_fail with saved errno
over setting errno then call rb_sys_fail, not to be clobbered
potentially and to reduce thread local errno accesses.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53264 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'util.c')
-rw-r--r-- | util.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -507,9 +507,10 @@ ruby_getcwd(void) char *buf = xmalloc(size); while (!getcwd(buf, size)) { - if (errno != ERANGE) { + int e = errno; + if (e != ERANGE) { xfree(buf); - rb_sys_fail("getcwd"); + rb_syserr_fail(e, "getcwd"); } size *= 2; buf = xrealloc(buf, size); @@ -527,8 +528,9 @@ ruby_getcwd(void) char *buf = xmalloc(PATH_MAX+1); if (!getwd(buf)) { + int e = errno; xfree(buf); - rb_sys_fail("getwd"); + rb_syserr_fail(e, "getwd"); } #endif return buf; |