aboutsummaryrefslogtreecommitdiffstats
path: root/internal/variable.h
diff options
context:
space:
mode:
authorPeter Zhu <peter@peterzhu.ca>2023-11-24 10:25:06 -0500
committerPeter Zhu <peter@peterzhu.ca>2023-11-24 13:29:04 -0500
commit269c705f93c4db631f4cad89991bc5d69a7dcd03 (patch)
treeab71fb98e0a7465aae04ff3a2338222c58a51104 /internal/variable.h
parente201b81f79828c30500947fe8c8ea3c515e3d112 (diff)
downloadruby-269c705f93c4db631f4cad89991bc5d69a7dcd03.tar.gz
Fix compaction for generic ivars
When generic instance variable has a shape, it is marked movable. If it it transitions to too complex, it needs to update references otherwise it may have incorrect references.
Diffstat (limited to 'internal/variable.h')
-rw-r--r--internal/variable.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/internal/variable.h b/internal/variable.h
index 63b074a308..b2a30c7c58 100644
--- a/internal/variable.h
+++ b/internal/variable.h
@@ -53,7 +53,8 @@ void rb_evict_ivars_to_hash(VALUE obj);
RUBY_SYMBOL_EXPORT_BEGIN
/* variable.c (export) */
-void rb_mark_and_update_generic_ivar(VALUE);
+void rb_mark_generic_ivar(VALUE obj);
+void rb_ref_update_generic_ivar(VALUE);
void rb_mv_generic_ivar(VALUE src, VALUE dst);
VALUE rb_const_missing(VALUE klass, VALUE name);
int rb_class_ivar_set(VALUE klass, ID vid, VALUE value);