mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
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
This commit is contained in:
parent
d15f30882a
commit
f4166e2dd7
12 changed files with 125 additions and 112 deletions
8
util.c
8
util.c
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue