diff options
author | normal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-06-05 00:37:05 +0000 |
---|---|---|
committer | normal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-06-05 00:37:05 +0000 |
commit | cc1c6552b7a383b8428afeecb820ac2245a04ada (patch) | |
tree | c991649a72badbf407a69f55634c96799911e844 /gc.c | |
parent | 9e1bb6ed5a5efb3726fdbfb1f3331989b27f0b1d (diff) | |
download | ruby-cc1c6552b7a383b8428afeecb820ac2245a04ada.tar.gz |
gc.c: zero check for malloc_limit_max to initialization
Repeatedly checking for malloc_limit_max in gc_reset_malloc_info
is unnecessary, check and set it once during initialization
in ruby_gc_set_params to simplify the hotter path
* gc.c (gc_reset_malloc_info): remove zero check
(ruby_gc_set_params): treat malloc_limit_max==0 as SIZE_MAX
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63569 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -6336,8 +6336,7 @@ gc_reset_malloc_info(rb_objspace_t *objspace) if (inc > malloc_limit) { malloc_limit = (size_t)(inc * gc_params.malloc_limit_growth_factor); - if (gc_params.malloc_limit_max > 0 && /* ignore max-check if 0 */ - malloc_limit > gc_params.malloc_limit_max) { + if (malloc_limit > gc_params.malloc_limit_max) { malloc_limit = gc_params.malloc_limit_max; } } @@ -7587,6 +7586,9 @@ ruby_gc_set_params(int safe_level) get_envparam_size ("RUBY_GC_MALLOC_LIMIT", &gc_params.malloc_limit_min, 0); get_envparam_size ("RUBY_GC_MALLOC_LIMIT_MAX", &gc_params.malloc_limit_max, 0); + if (!gc_params.malloc_limit_max) { /* ignore max-check if 0 */ + gc_params.malloc_limit_max = SIZE_MAX; + } get_envparam_double("RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR", &gc_params.malloc_limit_growth_factor, 1.0, 0.0, FALSE); #if RGENGC_ESTIMATE_OLDMALLOC |