Don't try compacting ivars on Classes that are "too complex"
Too complex classes use a hash table to store ivs, and should always pin their IVs. We shouldn't touch those classes in compaction.
This commit is contained in:
parent
7164715666
commit
6fce8c7980
32
common.mk
32
common.mk
@ -3006,7 +3006,9 @@ class.$(OBJEXT): {$(VPATH)}subst.h
|
|||||||
class.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
|
class.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
|
||||||
class.$(OBJEXT): {$(VPATH)}thread_native.h
|
class.$(OBJEXT): {$(VPATH)}thread_native.h
|
||||||
class.$(OBJEXT): {$(VPATH)}vm_core.h
|
class.$(OBJEXT): {$(VPATH)}vm_core.h
|
||||||
|
class.$(OBJEXT): {$(VPATH)}vm_debug.h
|
||||||
class.$(OBJEXT): {$(VPATH)}vm_opts.h
|
class.$(OBJEXT): {$(VPATH)}vm_opts.h
|
||||||
|
class.$(OBJEXT): {$(VPATH)}vm_sync.h
|
||||||
compar.$(OBJEXT): $(hdrdir)/ruby/ruby.h
|
compar.$(OBJEXT): $(hdrdir)/ruby/ruby.h
|
||||||
compar.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h
|
compar.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h
|
||||||
compar.$(OBJEXT): $(top_srcdir)/internal/compar.h
|
compar.$(OBJEXT): $(top_srcdir)/internal/compar.h
|
||||||
@ -3441,6 +3443,7 @@ compile.$(OBJEXT): {$(VPATH)}vm_callinfo.h
|
|||||||
compile.$(OBJEXT): {$(VPATH)}vm_core.h
|
compile.$(OBJEXT): {$(VPATH)}vm_core.h
|
||||||
compile.$(OBJEXT): {$(VPATH)}vm_debug.h
|
compile.$(OBJEXT): {$(VPATH)}vm_debug.h
|
||||||
compile.$(OBJEXT): {$(VPATH)}vm_opts.h
|
compile.$(OBJEXT): {$(VPATH)}vm_opts.h
|
||||||
|
compile.$(OBJEXT): {$(VPATH)}vm_sync.h
|
||||||
compile.$(OBJEXT): {$(VPATH)}yjit.h
|
compile.$(OBJEXT): {$(VPATH)}yjit.h
|
||||||
complex.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
|
complex.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
|
||||||
complex.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
|
complex.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
|
||||||
@ -3480,6 +3483,7 @@ complex.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
|
|||||||
complex.$(OBJEXT): {$(VPATH)}complex.c
|
complex.$(OBJEXT): {$(VPATH)}complex.c
|
||||||
complex.$(OBJEXT): {$(VPATH)}config.h
|
complex.$(OBJEXT): {$(VPATH)}config.h
|
||||||
complex.$(OBJEXT): {$(VPATH)}constant.h
|
complex.$(OBJEXT): {$(VPATH)}constant.h
|
||||||
|
complex.$(OBJEXT): {$(VPATH)}debug_counter.h
|
||||||
complex.$(OBJEXT): {$(VPATH)}defines.h
|
complex.$(OBJEXT): {$(VPATH)}defines.h
|
||||||
complex.$(OBJEXT): {$(VPATH)}encoding.h
|
complex.$(OBJEXT): {$(VPATH)}encoding.h
|
||||||
complex.$(OBJEXT): {$(VPATH)}id.h
|
complex.$(OBJEXT): {$(VPATH)}id.h
|
||||||
@ -3648,7 +3652,9 @@ complex.$(OBJEXT): {$(VPATH)}subst.h
|
|||||||
complex.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
|
complex.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
|
||||||
complex.$(OBJEXT): {$(VPATH)}thread_native.h
|
complex.$(OBJEXT): {$(VPATH)}thread_native.h
|
||||||
complex.$(OBJEXT): {$(VPATH)}vm_core.h
|
complex.$(OBJEXT): {$(VPATH)}vm_core.h
|
||||||
|
complex.$(OBJEXT): {$(VPATH)}vm_debug.h
|
||||||
complex.$(OBJEXT): {$(VPATH)}vm_opts.h
|
complex.$(OBJEXT): {$(VPATH)}vm_opts.h
|
||||||
|
complex.$(OBJEXT): {$(VPATH)}vm_sync.h
|
||||||
cont.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
|
cont.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
|
||||||
cont.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
|
cont.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
|
||||||
cont.$(OBJEXT): $(CCAN_DIR)/list/list.h
|
cont.$(OBJEXT): $(CCAN_DIR)/list/list.h
|
||||||
@ -4075,6 +4081,7 @@ debug.$(OBJEXT): {$(VPATH)}vm_callinfo.h
|
|||||||
debug.$(OBJEXT): {$(VPATH)}vm_core.h
|
debug.$(OBJEXT): {$(VPATH)}vm_core.h
|
||||||
debug.$(OBJEXT): {$(VPATH)}vm_debug.h
|
debug.$(OBJEXT): {$(VPATH)}vm_debug.h
|
||||||
debug.$(OBJEXT): {$(VPATH)}vm_opts.h
|
debug.$(OBJEXT): {$(VPATH)}vm_opts.h
|
||||||
|
debug.$(OBJEXT): {$(VPATH)}vm_sync.h
|
||||||
debug_counter.$(OBJEXT): $(hdrdir)/ruby/ruby.h
|
debug_counter.$(OBJEXT): $(hdrdir)/ruby/ruby.h
|
||||||
debug_counter.$(OBJEXT): {$(VPATH)}assert.h
|
debug_counter.$(OBJEXT): {$(VPATH)}assert.h
|
||||||
debug_counter.$(OBJEXT): {$(VPATH)}backward/2/assume.h
|
debug_counter.$(OBJEXT): {$(VPATH)}backward/2/assume.h
|
||||||
@ -6175,6 +6182,7 @@ enumerator.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
|
|||||||
enumerator.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
|
enumerator.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
|
||||||
enumerator.$(OBJEXT): {$(VPATH)}config.h
|
enumerator.$(OBJEXT): {$(VPATH)}config.h
|
||||||
enumerator.$(OBJEXT): {$(VPATH)}constant.h
|
enumerator.$(OBJEXT): {$(VPATH)}constant.h
|
||||||
|
enumerator.$(OBJEXT): {$(VPATH)}debug_counter.h
|
||||||
enumerator.$(OBJEXT): {$(VPATH)}defines.h
|
enumerator.$(OBJEXT): {$(VPATH)}defines.h
|
||||||
enumerator.$(OBJEXT): {$(VPATH)}encoding.h
|
enumerator.$(OBJEXT): {$(VPATH)}encoding.h
|
||||||
enumerator.$(OBJEXT): {$(VPATH)}enumerator.c
|
enumerator.$(OBJEXT): {$(VPATH)}enumerator.c
|
||||||
@ -6344,7 +6352,9 @@ enumerator.$(OBJEXT): {$(VPATH)}subst.h
|
|||||||
enumerator.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
|
enumerator.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
|
||||||
enumerator.$(OBJEXT): {$(VPATH)}thread_native.h
|
enumerator.$(OBJEXT): {$(VPATH)}thread_native.h
|
||||||
enumerator.$(OBJEXT): {$(VPATH)}vm_core.h
|
enumerator.$(OBJEXT): {$(VPATH)}vm_core.h
|
||||||
|
enumerator.$(OBJEXT): {$(VPATH)}vm_debug.h
|
||||||
enumerator.$(OBJEXT): {$(VPATH)}vm_opts.h
|
enumerator.$(OBJEXT): {$(VPATH)}vm_opts.h
|
||||||
|
enumerator.$(OBJEXT): {$(VPATH)}vm_sync.h
|
||||||
error.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
|
error.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
|
||||||
error.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
|
error.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
|
||||||
error.$(OBJEXT): $(CCAN_DIR)/list/list.h
|
error.$(OBJEXT): $(CCAN_DIR)/list/list.h
|
||||||
@ -6783,6 +6793,7 @@ eval.$(OBJEXT): {$(VPATH)}vm.h
|
|||||||
eval.$(OBJEXT): {$(VPATH)}vm_core.h
|
eval.$(OBJEXT): {$(VPATH)}vm_core.h
|
||||||
eval.$(OBJEXT): {$(VPATH)}vm_debug.h
|
eval.$(OBJEXT): {$(VPATH)}vm_debug.h
|
||||||
eval.$(OBJEXT): {$(VPATH)}vm_opts.h
|
eval.$(OBJEXT): {$(VPATH)}vm_opts.h
|
||||||
|
eval.$(OBJEXT): {$(VPATH)}vm_sync.h
|
||||||
explicit_bzero.$(OBJEXT): {$(VPATH)}config.h
|
explicit_bzero.$(OBJEXT): {$(VPATH)}config.h
|
||||||
explicit_bzero.$(OBJEXT): {$(VPATH)}explicit_bzero.c
|
explicit_bzero.$(OBJEXT): {$(VPATH)}explicit_bzero.c
|
||||||
explicit_bzero.$(OBJEXT): {$(VPATH)}internal/attr/format.h
|
explicit_bzero.$(OBJEXT): {$(VPATH)}internal/attr/format.h
|
||||||
@ -8489,7 +8500,9 @@ iseq.$(OBJEXT): {$(VPATH)}thread_native.h
|
|||||||
iseq.$(OBJEXT): {$(VPATH)}util.h
|
iseq.$(OBJEXT): {$(VPATH)}util.h
|
||||||
iseq.$(OBJEXT): {$(VPATH)}vm_callinfo.h
|
iseq.$(OBJEXT): {$(VPATH)}vm_callinfo.h
|
||||||
iseq.$(OBJEXT): {$(VPATH)}vm_core.h
|
iseq.$(OBJEXT): {$(VPATH)}vm_core.h
|
||||||
|
iseq.$(OBJEXT): {$(VPATH)}vm_debug.h
|
||||||
iseq.$(OBJEXT): {$(VPATH)}vm_opts.h
|
iseq.$(OBJEXT): {$(VPATH)}vm_opts.h
|
||||||
|
iseq.$(OBJEXT): {$(VPATH)}vm_sync.h
|
||||||
iseq.$(OBJEXT): {$(VPATH)}yjit.h
|
iseq.$(OBJEXT): {$(VPATH)}yjit.h
|
||||||
load.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
|
load.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
|
||||||
load.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
|
load.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
|
||||||
@ -9235,6 +9248,7 @@ marshal.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
|
|||||||
marshal.$(OBJEXT): {$(VPATH)}builtin.h
|
marshal.$(OBJEXT): {$(VPATH)}builtin.h
|
||||||
marshal.$(OBJEXT): {$(VPATH)}config.h
|
marshal.$(OBJEXT): {$(VPATH)}config.h
|
||||||
marshal.$(OBJEXT): {$(VPATH)}constant.h
|
marshal.$(OBJEXT): {$(VPATH)}constant.h
|
||||||
|
marshal.$(OBJEXT): {$(VPATH)}debug_counter.h
|
||||||
marshal.$(OBJEXT): {$(VPATH)}defines.h
|
marshal.$(OBJEXT): {$(VPATH)}defines.h
|
||||||
marshal.$(OBJEXT): {$(VPATH)}encindex.h
|
marshal.$(OBJEXT): {$(VPATH)}encindex.h
|
||||||
marshal.$(OBJEXT): {$(VPATH)}encoding.h
|
marshal.$(OBJEXT): {$(VPATH)}encoding.h
|
||||||
@ -9408,7 +9422,9 @@ marshal.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
|
|||||||
marshal.$(OBJEXT): {$(VPATH)}thread_native.h
|
marshal.$(OBJEXT): {$(VPATH)}thread_native.h
|
||||||
marshal.$(OBJEXT): {$(VPATH)}util.h
|
marshal.$(OBJEXT): {$(VPATH)}util.h
|
||||||
marshal.$(OBJEXT): {$(VPATH)}vm_core.h
|
marshal.$(OBJEXT): {$(VPATH)}vm_core.h
|
||||||
|
marshal.$(OBJEXT): {$(VPATH)}vm_debug.h
|
||||||
marshal.$(OBJEXT): {$(VPATH)}vm_opts.h
|
marshal.$(OBJEXT): {$(VPATH)}vm_opts.h
|
||||||
|
marshal.$(OBJEXT): {$(VPATH)}vm_sync.h
|
||||||
math.$(OBJEXT): $(hdrdir)/ruby/ruby.h
|
math.$(OBJEXT): $(hdrdir)/ruby/ruby.h
|
||||||
math.$(OBJEXT): $(top_srcdir)/internal/bignum.h
|
math.$(OBJEXT): $(top_srcdir)/internal/bignum.h
|
||||||
math.$(OBJEXT): $(top_srcdir)/internal/class.h
|
math.$(OBJEXT): $(top_srcdir)/internal/class.h
|
||||||
@ -10664,6 +10680,7 @@ object.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
|
|||||||
object.$(OBJEXT): {$(VPATH)}builtin.h
|
object.$(OBJEXT): {$(VPATH)}builtin.h
|
||||||
object.$(OBJEXT): {$(VPATH)}config.h
|
object.$(OBJEXT): {$(VPATH)}config.h
|
||||||
object.$(OBJEXT): {$(VPATH)}constant.h
|
object.$(OBJEXT): {$(VPATH)}constant.h
|
||||||
|
object.$(OBJEXT): {$(VPATH)}debug_counter.h
|
||||||
object.$(OBJEXT): {$(VPATH)}defines.h
|
object.$(OBJEXT): {$(VPATH)}defines.h
|
||||||
object.$(OBJEXT): {$(VPATH)}encoding.h
|
object.$(OBJEXT): {$(VPATH)}encoding.h
|
||||||
object.$(OBJEXT): {$(VPATH)}id.h
|
object.$(OBJEXT): {$(VPATH)}id.h
|
||||||
@ -10839,7 +10856,9 @@ object.$(OBJEXT): {$(VPATH)}thread_native.h
|
|||||||
object.$(OBJEXT): {$(VPATH)}util.h
|
object.$(OBJEXT): {$(VPATH)}util.h
|
||||||
object.$(OBJEXT): {$(VPATH)}variable.h
|
object.$(OBJEXT): {$(VPATH)}variable.h
|
||||||
object.$(OBJEXT): {$(VPATH)}vm_core.h
|
object.$(OBJEXT): {$(VPATH)}vm_core.h
|
||||||
|
object.$(OBJEXT): {$(VPATH)}vm_debug.h
|
||||||
object.$(OBJEXT): {$(VPATH)}vm_opts.h
|
object.$(OBJEXT): {$(VPATH)}vm_opts.h
|
||||||
|
object.$(OBJEXT): {$(VPATH)}vm_sync.h
|
||||||
pack.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
|
pack.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
|
||||||
pack.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
|
pack.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
|
||||||
pack.$(OBJEXT): $(CCAN_DIR)/list/list.h
|
pack.$(OBJEXT): $(CCAN_DIR)/list/list.h
|
||||||
@ -12440,6 +12459,7 @@ proc.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
|
|||||||
proc.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
|
proc.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
|
||||||
proc.$(OBJEXT): {$(VPATH)}config.h
|
proc.$(OBJEXT): {$(VPATH)}config.h
|
||||||
proc.$(OBJEXT): {$(VPATH)}constant.h
|
proc.$(OBJEXT): {$(VPATH)}constant.h
|
||||||
|
proc.$(OBJEXT): {$(VPATH)}debug_counter.h
|
||||||
proc.$(OBJEXT): {$(VPATH)}defines.h
|
proc.$(OBJEXT): {$(VPATH)}defines.h
|
||||||
proc.$(OBJEXT): {$(VPATH)}encoding.h
|
proc.$(OBJEXT): {$(VPATH)}encoding.h
|
||||||
proc.$(OBJEXT): {$(VPATH)}eval_intern.h
|
proc.$(OBJEXT): {$(VPATH)}eval_intern.h
|
||||||
@ -12611,7 +12631,9 @@ proc.$(OBJEXT): {$(VPATH)}subst.h
|
|||||||
proc.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
|
proc.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
|
||||||
proc.$(OBJEXT): {$(VPATH)}thread_native.h
|
proc.$(OBJEXT): {$(VPATH)}thread_native.h
|
||||||
proc.$(OBJEXT): {$(VPATH)}vm_core.h
|
proc.$(OBJEXT): {$(VPATH)}vm_core.h
|
||||||
|
proc.$(OBJEXT): {$(VPATH)}vm_debug.h
|
||||||
proc.$(OBJEXT): {$(VPATH)}vm_opts.h
|
proc.$(OBJEXT): {$(VPATH)}vm_opts.h
|
||||||
|
proc.$(OBJEXT): {$(VPATH)}vm_sync.h
|
||||||
proc.$(OBJEXT): {$(VPATH)}yjit.h
|
proc.$(OBJEXT): {$(VPATH)}yjit.h
|
||||||
process.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
|
process.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
|
||||||
process.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
|
process.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
|
||||||
@ -15299,9 +15321,11 @@ rjit_c.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
|
|||||||
rjit_c.$(OBJEXT): {$(VPATH)}thread_native.h
|
rjit_c.$(OBJEXT): {$(VPATH)}thread_native.h
|
||||||
rjit_c.$(OBJEXT): {$(VPATH)}vm_callinfo.h
|
rjit_c.$(OBJEXT): {$(VPATH)}vm_callinfo.h
|
||||||
rjit_c.$(OBJEXT): {$(VPATH)}vm_core.h
|
rjit_c.$(OBJEXT): {$(VPATH)}vm_core.h
|
||||||
|
rjit_c.$(OBJEXT): {$(VPATH)}vm_debug.h
|
||||||
rjit_c.$(OBJEXT): {$(VPATH)}vm_exec.h
|
rjit_c.$(OBJEXT): {$(VPATH)}vm_exec.h
|
||||||
rjit_c.$(OBJEXT): {$(VPATH)}vm_insnhelper.h
|
rjit_c.$(OBJEXT): {$(VPATH)}vm_insnhelper.h
|
||||||
rjit_c.$(OBJEXT): {$(VPATH)}vm_opts.h
|
rjit_c.$(OBJEXT): {$(VPATH)}vm_opts.h
|
||||||
|
rjit_c.$(OBJEXT): {$(VPATH)}vm_sync.h
|
||||||
rjit_c.$(OBJEXT): {$(VPATH)}yjit.h
|
rjit_c.$(OBJEXT): {$(VPATH)}yjit.h
|
||||||
ruby-runner.$(OBJEXT): {$(VPATH)}config.h
|
ruby-runner.$(OBJEXT): {$(VPATH)}config.h
|
||||||
ruby-runner.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
|
ruby-runner.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
|
||||||
@ -17168,6 +17192,7 @@ struct.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
|
|||||||
struct.$(OBJEXT): {$(VPATH)}builtin.h
|
struct.$(OBJEXT): {$(VPATH)}builtin.h
|
||||||
struct.$(OBJEXT): {$(VPATH)}config.h
|
struct.$(OBJEXT): {$(VPATH)}config.h
|
||||||
struct.$(OBJEXT): {$(VPATH)}constant.h
|
struct.$(OBJEXT): {$(VPATH)}constant.h
|
||||||
|
struct.$(OBJEXT): {$(VPATH)}debug_counter.h
|
||||||
struct.$(OBJEXT): {$(VPATH)}defines.h
|
struct.$(OBJEXT): {$(VPATH)}defines.h
|
||||||
struct.$(OBJEXT): {$(VPATH)}encoding.h
|
struct.$(OBJEXT): {$(VPATH)}encoding.h
|
||||||
struct.$(OBJEXT): {$(VPATH)}id.h
|
struct.$(OBJEXT): {$(VPATH)}id.h
|
||||||
@ -17337,7 +17362,9 @@ struct.$(OBJEXT): {$(VPATH)}subst.h
|
|||||||
struct.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
|
struct.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
|
||||||
struct.$(OBJEXT): {$(VPATH)}thread_native.h
|
struct.$(OBJEXT): {$(VPATH)}thread_native.h
|
||||||
struct.$(OBJEXT): {$(VPATH)}vm_core.h
|
struct.$(OBJEXT): {$(VPATH)}vm_core.h
|
||||||
|
struct.$(OBJEXT): {$(VPATH)}vm_debug.h
|
||||||
struct.$(OBJEXT): {$(VPATH)}vm_opts.h
|
struct.$(OBJEXT): {$(VPATH)}vm_opts.h
|
||||||
|
struct.$(OBJEXT): {$(VPATH)}vm_sync.h
|
||||||
symbol.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
|
symbol.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
|
||||||
symbol.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
|
symbol.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
|
||||||
symbol.$(OBJEXT): $(CCAN_DIR)/list/list.h
|
symbol.$(OBJEXT): $(CCAN_DIR)/list/list.h
|
||||||
@ -19052,6 +19079,7 @@ vm_backtrace.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
|
|||||||
vm_backtrace.$(OBJEXT): {$(VPATH)}config.h
|
vm_backtrace.$(OBJEXT): {$(VPATH)}config.h
|
||||||
vm_backtrace.$(OBJEXT): {$(VPATH)}constant.h
|
vm_backtrace.$(OBJEXT): {$(VPATH)}constant.h
|
||||||
vm_backtrace.$(OBJEXT): {$(VPATH)}debug.h
|
vm_backtrace.$(OBJEXT): {$(VPATH)}debug.h
|
||||||
|
vm_backtrace.$(OBJEXT): {$(VPATH)}debug_counter.h
|
||||||
vm_backtrace.$(OBJEXT): {$(VPATH)}defines.h
|
vm_backtrace.$(OBJEXT): {$(VPATH)}defines.h
|
||||||
vm_backtrace.$(OBJEXT): {$(VPATH)}encoding.h
|
vm_backtrace.$(OBJEXT): {$(VPATH)}encoding.h
|
||||||
vm_backtrace.$(OBJEXT): {$(VPATH)}eval_intern.h
|
vm_backtrace.$(OBJEXT): {$(VPATH)}eval_intern.h
|
||||||
@ -19223,7 +19251,9 @@ vm_backtrace.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
|
|||||||
vm_backtrace.$(OBJEXT): {$(VPATH)}thread_native.h
|
vm_backtrace.$(OBJEXT): {$(VPATH)}thread_native.h
|
||||||
vm_backtrace.$(OBJEXT): {$(VPATH)}vm_backtrace.c
|
vm_backtrace.$(OBJEXT): {$(VPATH)}vm_backtrace.c
|
||||||
vm_backtrace.$(OBJEXT): {$(VPATH)}vm_core.h
|
vm_backtrace.$(OBJEXT): {$(VPATH)}vm_core.h
|
||||||
|
vm_backtrace.$(OBJEXT): {$(VPATH)}vm_debug.h
|
||||||
vm_backtrace.$(OBJEXT): {$(VPATH)}vm_opts.h
|
vm_backtrace.$(OBJEXT): {$(VPATH)}vm_opts.h
|
||||||
|
vm_backtrace.$(OBJEXT): {$(VPATH)}vm_sync.h
|
||||||
vm_dump.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
|
vm_dump.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
|
||||||
vm_dump.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
|
vm_dump.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
|
||||||
vm_dump.$(OBJEXT): $(CCAN_DIR)/list/list.h
|
vm_dump.$(OBJEXT): $(CCAN_DIR)/list/list.h
|
||||||
@ -19840,7 +19870,9 @@ vm_trace.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
|
|||||||
vm_trace.$(OBJEXT): {$(VPATH)}thread_native.h
|
vm_trace.$(OBJEXT): {$(VPATH)}thread_native.h
|
||||||
vm_trace.$(OBJEXT): {$(VPATH)}trace_point.rbinc
|
vm_trace.$(OBJEXT): {$(VPATH)}trace_point.rbinc
|
||||||
vm_trace.$(OBJEXT): {$(VPATH)}vm_core.h
|
vm_trace.$(OBJEXT): {$(VPATH)}vm_core.h
|
||||||
|
vm_trace.$(OBJEXT): {$(VPATH)}vm_debug.h
|
||||||
vm_trace.$(OBJEXT): {$(VPATH)}vm_opts.h
|
vm_trace.$(OBJEXT): {$(VPATH)}vm_opts.h
|
||||||
|
vm_trace.$(OBJEXT): {$(VPATH)}vm_sync.h
|
||||||
vm_trace.$(OBJEXT): {$(VPATH)}vm_trace.c
|
vm_trace.$(OBJEXT): {$(VPATH)}vm_trace.c
|
||||||
vm_trace.$(OBJEXT): {$(VPATH)}yjit.h
|
vm_trace.$(OBJEXT): {$(VPATH)}yjit.h
|
||||||
weakmap.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
|
weakmap.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
|
||||||
|
@ -378,6 +378,7 @@ objspace.o: $(top_srcdir)/ccan/container_of/container_of.h
|
|||||||
objspace.o: $(top_srcdir)/ccan/list/list.h
|
objspace.o: $(top_srcdir)/ccan/list/list.h
|
||||||
objspace.o: $(top_srcdir)/ccan/str/str.h
|
objspace.o: $(top_srcdir)/ccan/str/str.h
|
||||||
objspace.o: $(top_srcdir)/constant.h
|
objspace.o: $(top_srcdir)/constant.h
|
||||||
|
objspace.o: $(top_srcdir)/debug_counter.h
|
||||||
objspace.o: $(top_srcdir)/id_table.h
|
objspace.o: $(top_srcdir)/id_table.h
|
||||||
objspace.o: $(top_srcdir)/internal.h
|
objspace.o: $(top_srcdir)/internal.h
|
||||||
objspace.o: $(top_srcdir)/internal/array.h
|
objspace.o: $(top_srcdir)/internal/array.h
|
||||||
@ -402,7 +403,9 @@ objspace.o: $(top_srcdir)/shape.h
|
|||||||
objspace.o: $(top_srcdir)/symbol.h
|
objspace.o: $(top_srcdir)/symbol.h
|
||||||
objspace.o: $(top_srcdir)/thread_pthread.h
|
objspace.o: $(top_srcdir)/thread_pthread.h
|
||||||
objspace.o: $(top_srcdir)/vm_core.h
|
objspace.o: $(top_srcdir)/vm_core.h
|
||||||
|
objspace.o: $(top_srcdir)/vm_debug.h
|
||||||
objspace.o: $(top_srcdir)/vm_opts.h
|
objspace.o: $(top_srcdir)/vm_opts.h
|
||||||
|
objspace.o: $(top_srcdir)/vm_sync.h
|
||||||
objspace.o: objspace.c
|
objspace.o: objspace.c
|
||||||
objspace.o: {$(VPATH)}id.h
|
objspace.o: {$(VPATH)}id.h
|
||||||
objspace_dump.o: $(RUBY_EXTCONF_H)
|
objspace_dump.o: $(RUBY_EXTCONF_H)
|
||||||
@ -613,7 +616,9 @@ objspace_dump.o: $(top_srcdir)/symbol.h
|
|||||||
objspace_dump.o: $(top_srcdir)/thread_pthread.h
|
objspace_dump.o: $(top_srcdir)/thread_pthread.h
|
||||||
objspace_dump.o: $(top_srcdir)/vm_callinfo.h
|
objspace_dump.o: $(top_srcdir)/vm_callinfo.h
|
||||||
objspace_dump.o: $(top_srcdir)/vm_core.h
|
objspace_dump.o: $(top_srcdir)/vm_core.h
|
||||||
|
objspace_dump.o: $(top_srcdir)/vm_debug.h
|
||||||
objspace_dump.o: $(top_srcdir)/vm_opts.h
|
objspace_dump.o: $(top_srcdir)/vm_opts.h
|
||||||
|
objspace_dump.o: $(top_srcdir)/vm_sync.h
|
||||||
objspace_dump.o: objspace.h
|
objspace_dump.o: objspace.h
|
||||||
objspace_dump.o: objspace_dump.c
|
objspace_dump.o: objspace_dump.c
|
||||||
objspace_dump.o: {$(VPATH)}id.h
|
objspace_dump.o: {$(VPATH)}id.h
|
||||||
|
6
gc.c
6
gc.c
@ -10608,8 +10608,10 @@ gc_update_object_references(rb_objspace_t *objspace, VALUE obj)
|
|||||||
update_cvc_tbl(objspace, obj);
|
update_cvc_tbl(objspace, obj);
|
||||||
update_superclasses(objspace, obj);
|
update_superclasses(objspace, obj);
|
||||||
|
|
||||||
for (attr_index_t i = 0; i < RCLASS_IV_COUNT(obj); i++) {
|
if (!rb_shape_obj_too_complex(obj)) {
|
||||||
UPDATE_IF_MOVED(objspace, RCLASS_IVPTR(obj)[i]);
|
for (attr_index_t i = 0; i < RCLASS_IV_COUNT(obj); i++) {
|
||||||
|
UPDATE_IF_MOVED(objspace, RCLASS_IVPTR(obj)[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
update_class_ext(objspace, RCLASS_EXT(obj));
|
update_class_ext(objspace, RCLASS_EXT(obj));
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#include "shape.h"
|
#include "shape.h"
|
||||||
#include "ruby_assert.h"
|
#include "ruby_assert.h"
|
||||||
#include "vm_core.h"
|
#include "vm_core.h"
|
||||||
|
#include "vm_sync.h"
|
||||||
#include "method.h" /* for rb_cref_t */
|
#include "method.h" /* for rb_cref_t */
|
||||||
|
|
||||||
#ifdef RCLASS_SUPER
|
#ifdef RCLASS_SUPER
|
||||||
@ -111,6 +112,44 @@ struct RClass_and_rb_classext_t {
|
|||||||
#define RCLASS_SUPERCLASSES_INCLUDE_SELF FL_USER2
|
#define RCLASS_SUPERCLASSES_INCLUDE_SELF FL_USER2
|
||||||
#define RICLASS_ORIGIN_SHARED_MTBL FL_USER3
|
#define RICLASS_ORIGIN_SHARED_MTBL FL_USER3
|
||||||
|
|
||||||
|
static inline st_table *
|
||||||
|
RCLASS_IV_HASH(VALUE obj)
|
||||||
|
{
|
||||||
|
RUBY_ASSERT(RB_TYPE_P(obj, RUBY_T_CLASS) || RB_TYPE_P(obj, RUBY_T_MODULE));
|
||||||
|
RUBY_ASSERT(rb_shape_obj_too_complex(obj));
|
||||||
|
return (st_table *)RCLASS_IVPTR(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
RCLASS_SET_IV_HASH(VALUE obj, const st_table *tbl)
|
||||||
|
{
|
||||||
|
RUBY_ASSERT(RB_TYPE_P(obj, RUBY_T_CLASS) || RB_TYPE_P(obj, RUBY_T_MODULE));
|
||||||
|
RUBY_ASSERT(rb_shape_obj_too_complex(obj));
|
||||||
|
RCLASS_IVPTR(obj) = (VALUE *)tbl;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline uint32_t
|
||||||
|
RCLASS_IV_COUNT(VALUE obj)
|
||||||
|
{
|
||||||
|
RUBY_ASSERT(RB_TYPE_P(obj, RUBY_T_CLASS) || RB_TYPE_P(obj, RUBY_T_MODULE));
|
||||||
|
if (rb_shape_obj_too_complex(obj)) {
|
||||||
|
uint32_t count;
|
||||||
|
|
||||||
|
// "Too complex" classes could have their IV hash mutated in
|
||||||
|
// parallel, so lets lock around getting the hash size.
|
||||||
|
RB_VM_LOCK_ENTER();
|
||||||
|
{
|
||||||
|
count = (uint32_t)rb_st_table_size(RCLASS_IV_HASH(obj));
|
||||||
|
}
|
||||||
|
RB_VM_LOCK_LEAVE();
|
||||||
|
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return rb_shape_get_shape_by_id(RCLASS_SHAPE_ID(obj))->next_iv_index;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* class.c */
|
/* class.c */
|
||||||
void rb_class_subclass_add(VALUE super, VALUE klass);
|
void rb_class_subclass_add(VALUE super, VALUE klass);
|
||||||
void rb_class_remove_from_super_subclasses(VALUE);
|
void rb_class_remove_from_super_subclasses(VALUE);
|
||||||
|
8
shape.h
8
shape.h
@ -213,14 +213,6 @@ RBASIC_IV_COUNT(VALUE obj)
|
|||||||
return rb_shape_get_shape_by_id(rb_shape_get_shape_id(obj))->next_iv_index;
|
return rb_shape_get_shape_by_id(rb_shape_get_shape_id(obj))->next_iv_index;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline uint32_t
|
|
||||||
RCLASS_IV_COUNT(VALUE obj)
|
|
||||||
{
|
|
||||||
RUBY_ASSERT(RB_TYPE_P(obj, RUBY_T_CLASS) || RB_TYPE_P(obj, RUBY_T_MODULE));
|
|
||||||
uint32_t ivc = rb_shape_get_shape_by_id(RCLASS_SHAPE_ID(obj))->next_iv_index;
|
|
||||||
return ivc;
|
|
||||||
}
|
|
||||||
|
|
||||||
rb_shape_t *rb_shape_traverse_from_new_root(rb_shape_t *initial_shape, rb_shape_t *orig_shape);
|
rb_shape_t *rb_shape_traverse_from_new_root(rb_shape_t *initial_shape, rb_shape_t *orig_shape);
|
||||||
|
|
||||||
bool rb_shape_set_shape_id(VALUE obj, shape_id_t shape_id);
|
bool rb_shape_set_shape_id(VALUE obj, shape_id_t shape_id);
|
||||||
|
16
variable.c
16
variable.c
@ -63,22 +63,6 @@ static void setup_const_entry(rb_const_entry_t *, VALUE, VALUE, rb_const_flag_t)
|
|||||||
static VALUE rb_const_search(VALUE klass, ID id, int exclude, int recurse, int visibility);
|
static VALUE rb_const_search(VALUE klass, ID id, int exclude, int recurse, int visibility);
|
||||||
static st_table *generic_iv_tbl_;
|
static st_table *generic_iv_tbl_;
|
||||||
|
|
||||||
static inline st_table *
|
|
||||||
RCLASS_IV_HASH(VALUE obj)
|
|
||||||
{
|
|
||||||
RUBY_ASSERT(RB_TYPE_P(obj, RUBY_T_CLASS) || RB_TYPE_P(obj, RUBY_T_MODULE));
|
|
||||||
RUBY_ASSERT(rb_shape_obj_too_complex(obj));
|
|
||||||
return (st_table *)RCLASS_IVPTR(obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void
|
|
||||||
RCLASS_SET_IV_HASH(VALUE obj, const st_table *tbl)
|
|
||||||
{
|
|
||||||
RUBY_ASSERT(RB_TYPE_P(obj, RUBY_T_CLASS) || RB_TYPE_P(obj, RUBY_T_MODULE));
|
|
||||||
RUBY_ASSERT(rb_shape_obj_too_complex(obj));
|
|
||||||
RCLASS_IVPTR(obj) = (VALUE *)tbl;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
Init_var_tables(void)
|
Init_var_tables(void)
|
||||||
{
|
{
|
||||||
|
@ -983,6 +983,7 @@ extern "C" {
|
|||||||
pub fn rb_gvar_get(arg1: ID) -> VALUE;
|
pub fn rb_gvar_get(arg1: ID) -> VALUE;
|
||||||
pub fn rb_gvar_set(arg1: ID, arg2: VALUE) -> VALUE;
|
pub fn rb_gvar_set(arg1: ID, arg2: VALUE) -> VALUE;
|
||||||
pub fn rb_ensure_iv_list_size(obj: VALUE, len: u32, newsize: u32);
|
pub fn rb_ensure_iv_list_size(obj: VALUE, len: u32, newsize: u32);
|
||||||
|
pub fn rb_vm_barrier();
|
||||||
pub fn rb_obj_as_string_result(str_: VALUE, obj: VALUE) -> VALUE;
|
pub fn rb_obj_as_string_result(str_: VALUE, obj: VALUE) -> VALUE;
|
||||||
pub fn rb_str_concat_literals(num: usize, strary: *const VALUE) -> VALUE;
|
pub fn rb_str_concat_literals(num: usize, strary: *const VALUE) -> VALUE;
|
||||||
pub fn rb_ec_str_resurrect(ec: *mut rb_execution_context_struct, str_: VALUE) -> VALUE;
|
pub fn rb_ec_str_resurrect(ec: *mut rb_execution_context_struct, str_: VALUE) -> VALUE;
|
||||||
@ -1005,7 +1006,6 @@ extern "C" {
|
|||||||
pub fn rb_iseq_line_no(iseq: *const rb_iseq_t, pos: usize) -> ::std::os::raw::c_uint;
|
pub fn rb_iseq_line_no(iseq: *const rb_iseq_t, pos: usize) -> ::std::os::raw::c_uint;
|
||||||
pub fn rb_iseqw_to_iseq(iseqw: VALUE) -> *const rb_iseq_t;
|
pub fn rb_iseqw_to_iseq(iseqw: VALUE) -> *const rb_iseq_t;
|
||||||
pub fn rb_iseq_label(iseq: *const rb_iseq_t) -> VALUE;
|
pub fn rb_iseq_label(iseq: *const rb_iseq_t) -> VALUE;
|
||||||
pub fn rb_vm_barrier();
|
|
||||||
pub fn rb_profile_frames(
|
pub fn rb_profile_frames(
|
||||||
start: ::std::os::raw::c_int,
|
start: ::std::os::raw::c_int,
|
||||||
limit: ::std::os::raw::c_int,
|
limit: ::std::os::raw::c_int,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user