ruby/internal
Jean Boussier d898e8d6f8 Refactor rb_shape_transition_shape_capa out
Right now the `rb_shape_get_next` shape caller need to
first check if there is capacity left, and if not call
`rb_shape_transition_shape_capa` before it can call `rb_shape_get_next`.

And on each of these it needs to checks if we got a TOO_COMPLEX
back.

All this logic is duplicated in the interpreter, YJIT and RJIT.

Instead we can have `rb_shape_get_next` do the capacity transition
when needed. The caller can compare the old and new shapes capacity
to know if resizing is needed. It also can check for TOO_COMPLEX
only once.
2023-11-08 11:02:55 +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
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
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
dir.h
enc.h
encoding.h
enum.h
enumerator.h
error.h Add `rb_sys_fail_sprintf` macro 2023-05-12 18:36:02 +09:00
eval.h
file.h
fixnum.h
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
object.h
parse.h Shorten `rb_strterm_literal_t` members 2023-10-14 11:08:43 +09:00
proc.h
process.h Put `rb_fork` back into process.c 2023-05-21 23:00:27 +09:00
ractor.h
random.h
range.h Implement Struct on VWA 2023-06-05 15:47:16 -04:00
rational.h
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
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_shape_transition_shape_capa out 2023-11-08 11:02:55 +01:00
vm.h Move IO#readline to Ruby 2023-09-28 10:43:45 -07:00
warnings.h