summaryrefslogtreecommitdiffhomepage
path: root/src/class.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2020-06-27 17:38:24 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2020-10-12 16:21:22 +0900
commit639946a006c29f648551512af8aa0bb0cd969412 (patch)
tree772fd60110e0492a42df513106d9e150b932645c /src/class.c
parentfb5e8ab6d5fa9b7ca08c7b66ac8038940534db70 (diff)
downloadmruby-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.c8
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;