aboutsummaryrefslogtreecommitdiffstats
path: root/vm_insnhelper.c
diff options
context:
space:
mode:
authorAaron Patterson <tenderlove@ruby-lang.org>2023-03-17 11:29:04 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2023-03-20 13:54:18 -0700
commit54dbd8bea8a79bfcdefa471c1717c6cd28022f33 (patch)
treea192755d979ae7db2a47616450d8a32332855809 /vm_insnhelper.c
parent51834ff2ec4fba7fa4d62b04365c1c9c5b6700f1 (diff)
downloadruby-54dbd8bea8a79bfcdefa471c1717c6cd28022f33.tar.gz
Use an st table for "too complex" objects
st tables will maintain insertion order so we can marshal dump / load objects with instance variables in the same order they were set on that particular instance [ruby-core:112926] [Bug #19535] Co-Authored-By: Jemma Issroff <jemmaissroff@gmail.com>
Diffstat (limited to 'vm_insnhelper.c')
-rw-r--r--vm_insnhelper.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/vm_insnhelper.c b/vm_insnhelper.c
index 674308c90c..e2cab6054a 100644
--- a/vm_insnhelper.c
+++ b/vm_insnhelper.c
@@ -1259,7 +1259,7 @@ vm_getivar(VALUE obj, ID id, const rb_iseq_t *iseq, IVC ic, const struct rb_call
rb_shape_t *shape = rb_shape_get_shape_by_id(shape_id);
if (shape_id == OBJ_TOO_COMPLEX_SHAPE_ID) {
- if (!rb_id_table_lookup(ROBJECT_IV_HASH(obj), id, &val)) {
+ if (!st_lookup(ROBJECT_IV_HASH(obj), id, &val)) {
val = default_value;
}
}