diff options
author | Aaron Patterson <tenderlove@ruby-lang.org> | 2022-09-26 16:09:50 -0700 |
---|---|---|
committer | Aaron Patterson <tenderlove@ruby-lang.org> | 2022-09-26 16:10:11 -0700 |
commit | 06abfa5be60e589052eb3bdfdae6c132bea3d20b (patch) | |
tree | 32200df9a517d30a92dfe1003057e03cfba44701 /marshal.c | |
parent | b39690df3a90a838cdb2de71e70a20651ebafaf4 (diff) | |
download | ruby-06abfa5be60e589052eb3bdfdae6c132bea3d20b.tar.gz |
Revert this until we can figure out WB issues or remove shapes from GC
Revert "* expand tabs. [ci skip]"
This reverts commit 830b5b5c351c5c6efa5ad461ae4ec5085e5f0275.
Revert "This commit implements the Object Shapes technique in CRuby."
This reverts commit 9ddfd2ca004d1952be79cf1b84c52c79a55978f4.
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 |