Skip to content

Commit 30d7205

Browse files
committed
Add rb_sys_fail_sprintf macro
1 parent e3385f8 commit 30d7205

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

hash.c

+4-4
Original file line numberDiff line numberDiff line change
@@ -5210,7 +5210,7 @@ ruby_setenv(const char *name, const char *value)
52105210
}
52115211
ENV_UNLOCK();
52125212

5213-
if (ret) rb_sys_fail_str(rb_sprintf("setenv(%s)", name));
5213+
if (ret) rb_sys_fail_sprintf("setenv(%s)", name);
52145214
}
52155215
else {
52165216
#ifdef VOID_UNSETENV
@@ -5227,7 +5227,7 @@ ruby_setenv(const char *name, const char *value)
52275227
}
52285228
ENV_UNLOCK();
52295229

5230-
if (ret) rb_sys_fail_str(rb_sprintf("unsetenv(%s)", name));
5230+
if (ret) rb_sys_fail_sprintf("unsetenv(%s)", name);
52315231
#endif
52325232
}
52335233
#elif defined __sun
@@ -5244,7 +5244,7 @@ ruby_setenv(const char *name, const char *value)
52445244
mem_size = len + strlen(value) + 2;
52455245
mem_ptr = malloc(mem_size);
52465246
if (mem_ptr == NULL)
5247-
rb_sys_fail_str(rb_sprintf("malloc(%"PRIuSIZE")", mem_size));
5247+
rb_sys_fail_sprintf("malloc(%"PRIuSIZE")", mem_size);
52485248
snprintf(mem_ptr, mem_size, "%s=%s", name, value);
52495249
}
52505250

@@ -5270,7 +5270,7 @@ ruby_setenv(const char *name, const char *value)
52705270

52715271
if (ret) {
52725272
free(mem_ptr);
5273-
rb_sys_fail_str(rb_sprintf("putenv(%s)", name));
5273+
rb_sys_fail_sprintf("putenv(%s)", name);
52745274
}
52755275
}
52765276
#else /* WIN32 */

internal/error.h

+6
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,12 @@ do { \
5454
rb_syserr_fail_path(errno_to_fail, (path)); \
5555
} while (0)
5656

57+
#define rb_sys_fail_sprintf(...) \
58+
do { \
59+
int errno_to_fail = errno; \
60+
rb_syserr_fail_str(errno_to_fail, rb_sprintf("" __VA_ARGS__)); \
61+
} while (0)
62+
5763
/* error.c */
5864
extern long rb_backtrace_length_limit;
5965
extern VALUE rb_eEAGAIN;

0 commit comments

Comments
 (0)