ruby/internal
Jean Boussier 94c9f16663 Refactor rb_obj_evacuate_ivs_to_hash_table
That function is a bit too low level to called from multiple
places. It's always used in tandem with `rb_shape_set_too_complex`
and both have to know how the object is laid out to update the
`iv_ptr`.

So instead we can provide two higher level function:

  - `rb_obj_copy_ivs_to_hash_table` to prepare a `st_table` from an
    arbitrary oject.
  - `rb_obj_convert_to_too_complex` to assign the new `st_table`
    to the old object, and safely free the old `iv_ptr`.

Unfortunately both can't be combined into one, because `rb_obj_copy_ivar`
need `rb_obj_copy_ivs_to_hash_table` to copy from one object
to another.
2023-11-17 09:19:21 +01:00
..
array.h Suppress array-bounds warnings from gcc 13 2023-11-07 23:19:51 +09:00
basic_operators.h Emit special instruction for array literal + .(hash|min|max) 2023-04-18 17:16:22 -07:00
bignum.h Stop exporting symbols for MJIT 2023-03-06 21:59:23 -08:00
bits.h Make popcount bit-masks stricter 2023-10-05 20:03:54 +09:00
class.h Avoid the pointer hack in RCLASS_EXT 2023-10-15 15:35:45 +09:00
cmdlineopt.h [Feature #19790] Rename BUGREPORT_PATH as CRASH_REPORT 2023-09-25 22:57:28 +09:00
compar.h Introduce BOP_CMP for optimized comparison 2022-12-06 12:37:23 -08:00
compile.h Move the PC regardless of the leaf flag (#8232) 2023-08-16 20:28:33 -07:00
compilers.h
complex.h
cont.h Introduce Fiber#storage for inheritable fiber-scoped variables. (#6612) 2022-12-01 23:00:33 +13:00
dir.h
enc.h
encoding.h parenthesize to macro 2022-12-02 01:31:27 +09:00
enum.h
enumerator.h
error.h Add rb_sys_fail_sprintf macro 2023-05-12 18:36:02 +09:00
eval.h
file.h Revert "reuse open(2) from rb_file_load_ok on POSIX-like system" 2023-02-27 09:24:45 -08:00
fixnum.h Fix rb_fix_mul_fix on OpenBSD/mips64 2022-07-03 09:42:44 -07:00
gc.h rb_shape_transition_shape_capa: use optimal sizes transitions 2023-10-23 09:33:15 +02:00
hash.h Add rb_hash_free for the GC to use 2023-09-24 09:07:52 -04:00
imemo.h Manage rb_strterm_t without imemo 2023-10-14 11:08:43 +09:00
inits.h
io.h do not redefine a typedef 2023-08-25 17:27:53 +09:00
load.h
loadpath.h
math.h
missing.h
numeric.h Stop exporting symbols for MJIT 2023-03-06 21:59:23 -08:00
object.h Stop exporting symbols for MJIT 2023-03-06 21:59:23 -08:00
parse.h Shorten rb_strterm_literal_t members 2023-10-14 11:08:43 +09:00
proc.h Stop exporting symbols for MJIT 2023-03-06 21:59:23 -08:00
process.h Put rb_fork back into process.c 2023-05-21 23:00:27 +09:00
ractor.h internal/ractor.h: Added 2022-03-30 16:50:46 +09:00
random.h
range.h Implement Struct on VWA 2023-06-05 15:47:16 -04:00
rational.h Don't redefine RB_OBJ_WRITE 2023-01-18 08:49:32 -05:00
re.h Stop allocating unused backref strings at defined? 2023-06-27 23:14:10 +09:00
ruby_parser.h Export functions used for builtins 2023-11-08 13:02:55 +09:00
sanitizers.h Remove obsoleted MJIT_HEADER macro 2023-03-06 22:29:35 -08:00
serial.h
signal.h Move posix_signal declaration internal with prefix ruby_ 2023-07-17 21:31:59 +09:00
static_assert.h
string.h Use end of char boundary in start_with? 2023-09-01 16:23:28 -07:00
struct.h Remove unused references to the transient heap 2023-07-13 14:48:14 -04:00
symbol.h Ensure _id2ref finds symbols with the correct type 2022-07-20 10:38:44 -07:00
thread.h M:N thread scheduler for Ractors 2023-10-12 14:47:01 +09:00
time.h
transcode.h
util.h
variable.h Refactor rb_obj_evacuate_ivs_to_hash_table 2023-11-17 09:19:21 +01:00
vm.h Move IO#readline to Ruby 2023-09-28 10:43:45 -07:00
warnings.h