diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-06-27 17:38:24 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-10-12 16:21:22 +0900 |
| commit | 639946a006c29f648551512af8aa0bb0cd969412 (patch) | |
| tree | 772fd60110e0492a42df513106d9e150b932645c /src/class.c | |
| parent | fb5e8ab6d5fa9b7ca08c7b66ac8038940534db70 (diff) | |
| download | mruby-639946a006c29f648551512af8aa0bb0cd969412.tar.gz mruby-639946a006c29f648551512af8aa0bb0cd969412.zip | |
Enable method cache by default.
Introduced `MRB_NO_METHOD_CACHE` which is inverse of `MRB_METHOD_CACHE`
that should be enabled intestinally. In addition, the default cache is
made bigger (128 -> 256).
Diffstat (limited to 'src/class.c')
| -rw-r--r-- | src/class.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/class.c b/src/class.c index c48229d8a..30f4a3e2f 100644 --- a/src/class.c +++ b/src/class.c @@ -292,7 +292,7 @@ mrb_define_class(mrb_state *mrb, const char *name, struct RClass *super) } static mrb_value mrb_bob_init(mrb_state *mrb, mrb_value); -#ifdef MRB_METHOD_CACHE +#ifndef MRB_NO_METHOD_CACHE static void mc_clear_all(mrb_state *mrb); static void mc_clear_by_id(mrb_state *mrb, struct RClass*, mrb_sym); #else @@ -1404,7 +1404,7 @@ mrb_define_module_function(mrb_state *mrb, struct RClass *c, const char *name, m mrb_define_module_function_id(mrb, c, mrb_intern_cstr(mrb, name), func, aspec); } -#ifdef MRB_METHOD_CACHE +#ifndef MRB_NO_METHOD_CACHE static void mc_clear_all(mrb_state *mrb) { @@ -1456,7 +1456,7 @@ mrb_method_search_vm(mrb_state *mrb, struct RClass **cp, mrb_sym mid) khiter_t k; mrb_method_t m; struct RClass *c = *cp; -#ifdef MRB_METHOD_CACHE +#ifndef MRB_NO_METHOD_CACHE struct RClass *oc = c; int h = kh_int_hash_func(mrb, ((intptr_t)oc) ^ mid) & (MRB_METHOD_CACHE_SIZE-1); struct mrb_cache_entry *mc = &mrb->cache[h]; @@ -1476,7 +1476,7 @@ mrb_method_search_vm(mrb_state *mrb, struct RClass **cp, mrb_sym mid) m = kh_value(h, k); if (MRB_METHOD_UNDEF_P(m)) break; *cp = c; -#ifdef MRB_METHOD_CACHE +#ifndef MRB_NO_METHOD_CACHE mc->c = oc; mc->c0 = c; mc->mid = mid; |
