From acfeeb22593523d75ed65093fbd8108c86ea67a8 Mon Sep 17 00:00:00 2001 From: akr Date: Mon, 25 Feb 2008 04:58:47 +0000 Subject: [PATCH] * process.c (Init_process): share bignum objects for RLIM_INFINITY, RLIM_SAVED_MAX and RLIM_SAVED_CUR if they are equal. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15596 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ process.c | 13 ++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index d5a1b3cc11..89e3302eac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Mon Feb 25 13:40:03 2008 Tanaka Akira + + * process.c (Init_process): share bignum objects for RLIM_INFINITY, + RLIM_SAVED_MAX and RLIM_SAVED_CUR if they are equal. + Sun Feb 24 23:29:48 2008 Nobuyoshi Nakada * common.mk, {bcc,win}32/Makefile.sub (clean-local): remove diff --git a/process.c b/process.c index 6276f46728..a3421f57c3 100644 --- a/process.c +++ b/process.c @@ -3630,15 +3630,18 @@ Init_process() rb_define_module_function(rb_mProcess, "getrlimit", proc_getrlimit, 1); rb_define_module_function(rb_mProcess, "setrlimit", proc_setrlimit, -1); #ifdef RLIM2NUM -#ifdef RLIM_INFINITY - rb_define_const(rb_mProcess, "RLIM_INFINITY", RLIM2NUM(RLIM_INFINITY)); -#endif + { + VALUE inf = RLIM2NUM(RLIM_INFINITY), v; + rb_define_const(rb_mProcess, "RLIM_INFINITY", inf); #ifdef RLIM_SAVED_MAX - rb_define_const(rb_mProcess, "RLIM_SAVED_MAX", RLIM2NUM(RLIM_SAVED_MAX)); + v = RLIM_INFINITY == RLIM_SAVED_MAX ? inf : RLIM2NUM(RLIM_SAVED_MAX); + rb_define_const(rb_mProcess, "RLIM_SAVED_MAX", v); #endif #ifdef RLIM_SAVED_CUR - rb_define_const(rb_mProcess, "RLIM_SAVED_CUR", RLIM2NUM(RLIM_SAVED_CUR)); + v = RLIM_INFINITY == RLIM_SAVED_CUR ? inf : RLIM2NUM(RLIM_SAVED_CUR); + rb_define_const(rb_mProcess, "RLIM_SAVED_CUR", v); #endif + } #ifdef RLIMIT_CORE rb_define_const(rb_mProcess, "RLIMIT_CORE", INT2FIX(RLIMIT_CORE)); #endif