File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -394,7 +394,7 @@ dump_object(VALUE obj, struct dump_config *dc)
394394
395395 dc -> cur_obj = obj ;
396396 dc -> cur_obj_references = 0 ;
397- if (BUILTIN_TYPE (obj ) == T_NODE || BUILTIN_TYPE (obj ) == T_IMEMO ) {
397+ if (BUILTIN_TYPE (obj ) == T_NODE || ( BUILTIN_TYPE (obj ) == T_IMEMO && ! IMEMO_TYPE_P ( obj , imemo_fields )) ) {
398398 dc -> cur_obj_klass = 0 ;
399399 } else {
400400 dc -> cur_obj_klass = RBASIC_CLASS (obj );
@@ -414,8 +414,8 @@ dump_object(VALUE obj, struct dump_config *dc)
414414 dump_append (dc , obj_type (obj ));
415415 dump_append (dc , "\"" );
416416
417- if (BUILTIN_TYPE (obj ) != T_IMEMO ) {
418- size_t shape_id = rb_obj_shape_id (obj );
417+ if (BUILTIN_TYPE (obj ) != T_IMEMO || IMEMO_TYPE_P ( obj , imemo_fields ) ) {
418+ size_t shape_id = rb_obj_shape_id (obj ) & SHAPE_ID_OFFSET_MASK ;
419419 dump_append (dc , ", \"shape_id\":" );
420420 dump_append_sizet (dc , shape_id );
421421 }
You can’t perform that action at this time.
0 commit comments