diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2019-08-17 23:29:54 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2019-08-18 00:34:12 +0900 |
commit | 1d11a8b1938d3310d6b573c2feb173661a82b6a6 (patch) | |
tree | 0bf7f69bd3c95593c6fdc4de74fbe420d8cb79bd /vm_method.c | |
parent | 6db3051fcc08440fb1d80617dae90ae3f97db95c (diff) |
Ensure non-OPT_GLOBAL_METHOD_CACHE code valid
Diffstat (limited to 'vm_method.c')
-rw-r--r-- | vm_method.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/vm_method.c b/vm_method.c index 0bc32ad36f..d5ebaa4d4c 100644 --- a/vm_method.c +++ b/vm_method.c @@ -803,8 +803,8 @@ verify_method_cache(VALUE klass, ID id, VALUE defined_class, rb_method_entry_t * static rb_method_entry_t * method_entry_get(VALUE klass, ID id, VALUE *defined_class_ptr) { -#if OPT_GLOBAL_METHOD_CACHE struct cache_entry *ent; + if (!OPT_GLOBAL_METHOD_CACHE) goto nocache; ent = GLOBAL_METHOD_CACHE(klass, id); if (ent->method_state == GET_GLOBAL_METHOD_STATE() && ent->class_serial == RCLASS_SERIAL(klass) && @@ -814,8 +814,8 @@ method_entry_get(VALUE klass, ID id, VALUE *defined_class_ptr) RB_DEBUG_COUNTER_INC(mc_global_hit); return ent->me; } -#endif + nocache: RB_DEBUG_COUNTER_INC(mc_global_miss); return method_entry_get_without_cache(klass, id, defined_class_ptr); } @@ -2090,7 +2090,7 @@ obj_respond_to_missing(VALUE obj, VALUE mid, VALUE priv) void Init_Method(void) { -#if OPT_GLOBAL_METHOD_CACHE + if (!OPT_GLOBAL_METHOD_CACHE) return; char *ptr = getenv("RUBY_GLOBAL_METHOD_CACHE_SIZE"); int val; @@ -2109,7 +2109,6 @@ Init_Method(void) fprintf(stderr, "[FATAL] failed to allocate memory\n"); exit(EXIT_FAILURE); } -#endif } void |