diff options
author | Aaron Patterson <tenderlove@ruby-lang.org> | 2022-09-30 16:01:50 -0700 |
---|---|---|
committer | Aaron Patterson <tenderlove@ruby-lang.org> | 2022-09-30 16:01:50 -0700 |
commit | 9a6803c90b817f70389cae10d60b50ad752da48f (patch) | |
tree | fd03366733e1d8198c74592474adf18bb841b1a5 /marshal.c | |
parent | 0ab0229c1162308509b36cafbf6eaafd7ae054d7 (diff) | |
download | ruby-9a6803c90b817f70389cae10d60b50ad752da48f.tar.gz |
Revert "This commit implements the Object Shapes technique in CRuby."
This reverts commit 68bc9e2e97d12f80df0d113e284864e225f771c2.
Diffstat (limited to 'marshal.c')
-rw-r--r-- | marshal.c | 10 |
1 files changed, 4 insertions, 6 deletions
@@ -39,7 +39,6 @@ #include "ruby/st.h" #include "ruby/util.h" #include "builtin.h" -#include "shape.h" #define BITSPERSHORT (2*CHAR_BIT) #define SHORTMASK ((1<<BITSPERSHORT)-1) @@ -623,6 +622,10 @@ w_obj_each(st_data_t key, st_data_t val, st_data_t a) } return ST_CONTINUE; } + if (!ivarg->num_ivar) { + rb_raise(rb_eRuntimeError, "instance variable added to %"PRIsVALUE" instance", + CLASS_OF(arg->obj)); + } --ivarg->num_ivar; w_symbol(ID2SYM(id), arg->arg); w_object(value, arg->arg, arg->limit); @@ -717,7 +720,6 @@ has_ivars(VALUE obj, VALUE encname, VALUE *ivobj) static void w_ivar_each(VALUE obj, st_index_t num, struct dump_call_arg *arg) { - shape_id_t shape_id = rb_shape_get_shape_id(arg->obj); struct w_ivar_arg ivarg = {arg, num}; if (!num) return; rb_ivar_foreach(obj, w_obj_each, (st_data_t)&ivarg); @@ -725,10 +727,6 @@ w_ivar_each(VALUE obj, st_index_t num, struct dump_call_arg *arg) rb_raise(rb_eRuntimeError, "instance variable removed from %"PRIsVALUE" instance", CLASS_OF(arg->obj)); } - if (shape_id != rb_shape_get_shape_id(arg->obj)) { - rb_raise(rb_eRuntimeError, "instance variable added to %"PRIsVALUE" instance", - CLASS_OF(arg->obj)); - } } static void |