diff --git a/gc.c b/gc.c index 378e4a31cb..5ae6dc81bd 100644 --- a/gc.c +++ b/gc.c @@ -3491,7 +3491,7 @@ rb_data_free(rb_objspace_t *objspace, VALUE obj) if (dfree) { if (dfree == RUBY_DEFAULT_FREE) { - if (!RTYPEDDATA_EMBEDDED_P(obj)) { + if (!RTYPEDDATA_P(obj) || !RTYPEDDATA_EMBEDDED_P(obj)) { xfree(data); RB_DEBUG_COUNTER_INC(obj_data_xfree); }