summaryrefslogtreecommitdiffhomepage
path: root/src/gc.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2021-02-19 15:36:41 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2021-02-19 15:36:41 +0900
commit787487b16dce4fbb9059a70b13d31d8be679fe70 (patch)
tree312c8e8c1b96d631ea5a828f1d4381367f7a5e46 /src/gc.c
parentce0a381406b9d919f8cb6578315b7b70d96adb83 (diff)
downloadmruby-787487b16dce4fbb9059a70b13d31d8be679fe70.tar.gz
mruby-787487b16dce4fbb9059a70b13d31d8be679fe70.zip
Check `MRB_TT_*` before object allocation; ref #5352
Diffstat (limited to 'src/gc.c')
-rw-r--r--src/gc.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/gc.c b/src/gc.c
index 98a2237d5..07ca61e52 100644
--- a/src/gc.c
+++ b/src/gc.c
@@ -559,6 +559,9 @@ mrb_obj_alloc(mrb_state *mrb, enum mrb_vtype ttype, struct RClass *cls)
mrb_raisef(mrb, E_TYPE_ERROR, "allocation failure of %C", cls);
}
}
+ if (ttype <= MRB_TT_FREE) {
+ mrb_raisef(mrb, E_TYPE_ERROR, "allocation failure of %C (type %d)", cls, (int)ttype);
+ }
#ifdef MRB_GC_STRESS
mrb_full_gc(mrb);