/src/ruby/internal/array.h
Line | Count | Source |
1 | | #ifndef INTERNAL_ARRAY_H /*-*-C-*-vi:se ft=c:*/ |
2 | | #define INTERNAL_ARRAY_H |
3 | | /** |
4 | | * @author Ruby developers <ruby-core@ruby-lang.org> |
5 | | * @copyright This file is a part of the programming language Ruby. |
6 | | * Permission is hereby granted, to either redistribute and/or |
7 | | * modify this file, provided that the conditions mentioned in the |
8 | | * file COPYING are met. Consult the file for details. |
9 | | * @brief Internal header for Array. |
10 | | */ |
11 | | #include "ruby/internal/config.h" |
12 | | #include <stddef.h> /* for size_t */ |
13 | | #include "internal/static_assert.h" /* for STATIC_ASSERT */ |
14 | | #include "ruby/internal/stdbool.h" /* for bool */ |
15 | | #include "ruby/ruby.h" /* for RARRAY_LEN */ |
16 | | |
17 | | #ifndef ARRAY_DEBUG |
18 | | # define ARRAY_DEBUG (0+RUBY_DEBUG) |
19 | | #endif |
20 | | |
21 | 5.77M | #define RARRAY_SHARED_FLAG ELTS_SHARED |
22 | 498k | #define RARRAY_SHARED_ROOT_FLAG FL_USER12 |
23 | | #define RARRAY_PTR_IN_USE_FLAG FL_USER14 |
24 | | |
25 | | /* array.c */ |
26 | | VALUE rb_ary_hash_values(long len, const VALUE *elements); |
27 | | VALUE rb_ary_last(int, const VALUE *, VALUE); |
28 | | void rb_ary_set_len(VALUE, long); |
29 | | void rb_ary_delete_same(VALUE, VALUE); |
30 | | VALUE rb_ary_hidden_new_fill(long capa); |
31 | | VALUE rb_ary_at(VALUE, VALUE); |
32 | | size_t rb_ary_memsize(VALUE); |
33 | | VALUE rb_to_array_type(VALUE obj); |
34 | | VALUE rb_to_array(VALUE obj); |
35 | | void rb_ary_cancel_sharing(VALUE ary); |
36 | | size_t rb_ary_size_as_embedded(VALUE ary); |
37 | | void rb_ary_make_embedded(VALUE ary); |
38 | | bool rb_ary_embeddable_p(VALUE ary); |
39 | | VALUE rb_ary_diff(VALUE ary1, VALUE ary2); |
40 | | VALUE rb_ary_compact_bang(VALUE ary); |
41 | | RUBY_EXTERN VALUE rb_cArray_empty_frozen; |
42 | | |
43 | | static inline VALUE rb_ary_entry_internal(VALUE ary, long offset); |
44 | | static inline bool ARY_PTR_USING_P(VALUE ary); |
45 | | |
46 | | VALUE rb_ary_tmp_new_from_values(VALUE, long, const VALUE *); |
47 | | VALUE rb_check_to_array(VALUE ary); |
48 | | VALUE rb_ary_behead(VALUE, long); |
49 | | VALUE rb_ary_aref1(VALUE ary, VALUE i); |
50 | | |
51 | | struct rb_execution_context_struct; |
52 | | VALUE rb_ec_ary_new_from_values(struct rb_execution_context_struct *ec, long n, const VALUE *elts); |
53 | | |
54 | | // YJIT needs this function to never allocate and never raise |
55 | | static inline VALUE |
56 | | rb_ary_entry_internal(VALUE ary, long offset) |
57 | 25.8k | { |
58 | 25.8k | long len = RARRAY_LEN(ary); |
59 | 25.8k | const VALUE *ptr = RARRAY_CONST_PTR(ary); |
60 | 25.8k | if (len == 0) return Qnil; |
61 | 25.8k | if (offset < 0) { |
62 | 124 | offset += len; |
63 | 124 | if (offset < 0) return Qnil; |
64 | 124 | } |
65 | 25.7k | else if (len <= offset) { |
66 | 8 | return Qnil; |
67 | 8 | } |
68 | 25.7k | return ptr[offset]; |
69 | 25.8k | } array.c:rb_ary_entry_internal Line | Count | Source | 57 | 25.8k | { | 58 | 25.8k | long len = RARRAY_LEN(ary); | 59 | 25.8k | const VALUE *ptr = RARRAY_CONST_PTR(ary); | 60 | 25.8k | if (len == 0) return Qnil; | 61 | 25.8k | if (offset < 0) { | 62 | 124 | offset += len; | 63 | 124 | if (offset < 0) return Qnil; | 64 | 124 | } | 65 | 25.7k | else if (len <= offset) { | 66 | 8 | return Qnil; | 67 | 8 | } | 68 | 25.7k | return ptr[offset]; | 69 | 25.8k | } |
Unexecuted instantiation: bignum.c:rb_ary_entry_internal Unexecuted instantiation: class.c:rb_ary_entry_internal Unexecuted instantiation: complex.c:rb_ary_entry_internal Unexecuted instantiation: enum.c:rb_ary_entry_internal Unexecuted instantiation: enumerator.c:rb_ary_entry_internal Unexecuted instantiation: error.c:rb_ary_entry_internal Unexecuted instantiation: eval.c:rb_ary_entry_internal Unexecuted instantiation: file.c:rb_ary_entry_internal Unexecuted instantiation: gc.c:rb_ary_entry_internal Unexecuted instantiation: hash.c:rb_ary_entry_internal Unexecuted instantiation: imemo.c:rb_ary_entry_internal Unexecuted instantiation: io.c:rb_ary_entry_internal Unexecuted instantiation: io_buffer.c:rb_ary_entry_internal Unexecuted instantiation: iseq.c:rb_ary_entry_internal Unexecuted instantiation: load.c:rb_ary_entry_internal Unexecuted instantiation: marshal.c:rb_ary_entry_internal Unexecuted instantiation: memory_view.c:rb_ary_entry_internal Unexecuted instantiation: node.c:rb_ary_entry_internal Unexecuted instantiation: node_dump.c:rb_ary_entry_internal Unexecuted instantiation: numeric.c:rb_ary_entry_internal Unexecuted instantiation: object.c:rb_ary_entry_internal Unexecuted instantiation: pack.c:rb_ary_entry_internal Unexecuted instantiation: proc.c:rb_ary_entry_internal Unexecuted instantiation: process.c:rb_ary_entry_internal Unexecuted instantiation: ractor.c:rb_ary_entry_internal Unexecuted instantiation: random.c:rb_ary_entry_internal Unexecuted instantiation: range.c:rb_ary_entry_internal Unexecuted instantiation: rational.c:rb_ary_entry_internal Unexecuted instantiation: re.c:rb_ary_entry_internal Unexecuted instantiation: ruby.c:rb_ary_entry_internal Unexecuted instantiation: scheduler.c:rb_ary_entry_internal Unexecuted instantiation: set.c:rb_ary_entry_internal Unexecuted instantiation: shape.c:rb_ary_entry_internal Unexecuted instantiation: signal.c:rb_ary_entry_internal Unexecuted instantiation: st.c:rb_ary_entry_internal Unexecuted instantiation: string.c:rb_ary_entry_internal Unexecuted instantiation: struct.c:rb_ary_entry_internal Unexecuted instantiation: symbol.c:rb_ary_entry_internal Unexecuted instantiation: thread.c:rb_ary_entry_internal Unexecuted instantiation: time.c:rb_ary_entry_internal Unexecuted instantiation: transcode.c:rb_ary_entry_internal Unexecuted instantiation: util.c:rb_ary_entry_internal Unexecuted instantiation: variable.c:rb_ary_entry_internal Unexecuted instantiation: version.c:rb_ary_entry_internal Unexecuted instantiation: vm.c:rb_ary_entry_internal Unexecuted instantiation: vm_backtrace.c:rb_ary_entry_internal Unexecuted instantiation: vm_dump.c:rb_ary_entry_internal Unexecuted instantiation: vm_sync.c:rb_ary_entry_internal Unexecuted instantiation: vm_trace.c:rb_ary_entry_internal Unexecuted instantiation: weakmap.c:rb_ary_entry_internal Unexecuted instantiation: builtin.c:rb_ary_entry_internal Unexecuted instantiation: ast.c:rb_ary_entry_internal Unexecuted instantiation: box.c:rb_ary_entry_internal Unexecuted instantiation: compile.c:rb_ary_entry_internal Unexecuted instantiation: concurrent_set.c:rb_ary_entry_internal Unexecuted instantiation: cont.c:rb_ary_entry_internal Unexecuted instantiation: debug.c:rb_ary_entry_internal Unexecuted instantiation: dir.c:rb_ary_entry_internal Unexecuted instantiation: parse.c:rb_ary_entry_internal |
70 | | |
71 | | static inline bool |
72 | | ARY_PTR_USING_P(VALUE ary) |
73 | 0 | { |
74 | 0 | return FL_TEST_RAW(ary, RARRAY_PTR_IN_USE_FLAG); |
75 | 0 | } Unexecuted instantiation: array.c:ARY_PTR_USING_P Unexecuted instantiation: bignum.c:ARY_PTR_USING_P Unexecuted instantiation: class.c:ARY_PTR_USING_P Unexecuted instantiation: complex.c:ARY_PTR_USING_P Unexecuted instantiation: enum.c:ARY_PTR_USING_P Unexecuted instantiation: enumerator.c:ARY_PTR_USING_P Unexecuted instantiation: error.c:ARY_PTR_USING_P Unexecuted instantiation: eval.c:ARY_PTR_USING_P Unexecuted instantiation: file.c:ARY_PTR_USING_P Unexecuted instantiation: gc.c:ARY_PTR_USING_P Unexecuted instantiation: hash.c:ARY_PTR_USING_P Unexecuted instantiation: imemo.c:ARY_PTR_USING_P Unexecuted instantiation: io.c:ARY_PTR_USING_P Unexecuted instantiation: io_buffer.c:ARY_PTR_USING_P Unexecuted instantiation: iseq.c:ARY_PTR_USING_P Unexecuted instantiation: load.c:ARY_PTR_USING_P Unexecuted instantiation: marshal.c:ARY_PTR_USING_P Unexecuted instantiation: memory_view.c:ARY_PTR_USING_P Unexecuted instantiation: node.c:ARY_PTR_USING_P Unexecuted instantiation: node_dump.c:ARY_PTR_USING_P Unexecuted instantiation: numeric.c:ARY_PTR_USING_P Unexecuted instantiation: object.c:ARY_PTR_USING_P Unexecuted instantiation: pack.c:ARY_PTR_USING_P Unexecuted instantiation: proc.c:ARY_PTR_USING_P Unexecuted instantiation: process.c:ARY_PTR_USING_P Unexecuted instantiation: ractor.c:ARY_PTR_USING_P Unexecuted instantiation: random.c:ARY_PTR_USING_P Unexecuted instantiation: range.c:ARY_PTR_USING_P Unexecuted instantiation: rational.c:ARY_PTR_USING_P Unexecuted instantiation: re.c:ARY_PTR_USING_P Unexecuted instantiation: ruby.c:ARY_PTR_USING_P Unexecuted instantiation: scheduler.c:ARY_PTR_USING_P Unexecuted instantiation: set.c:ARY_PTR_USING_P Unexecuted instantiation: shape.c:ARY_PTR_USING_P Unexecuted instantiation: signal.c:ARY_PTR_USING_P Unexecuted instantiation: st.c:ARY_PTR_USING_P Unexecuted instantiation: string.c:ARY_PTR_USING_P Unexecuted instantiation: struct.c:ARY_PTR_USING_P Unexecuted instantiation: symbol.c:ARY_PTR_USING_P Unexecuted instantiation: thread.c:ARY_PTR_USING_P Unexecuted instantiation: time.c:ARY_PTR_USING_P Unexecuted instantiation: transcode.c:ARY_PTR_USING_P Unexecuted instantiation: util.c:ARY_PTR_USING_P Unexecuted instantiation: variable.c:ARY_PTR_USING_P Unexecuted instantiation: version.c:ARY_PTR_USING_P Unexecuted instantiation: vm.c:ARY_PTR_USING_P Unexecuted instantiation: vm_backtrace.c:ARY_PTR_USING_P Unexecuted instantiation: vm_dump.c:ARY_PTR_USING_P Unexecuted instantiation: vm_sync.c:ARY_PTR_USING_P Unexecuted instantiation: vm_trace.c:ARY_PTR_USING_P Unexecuted instantiation: weakmap.c:ARY_PTR_USING_P Unexecuted instantiation: builtin.c:ARY_PTR_USING_P Unexecuted instantiation: ast.c:ARY_PTR_USING_P Unexecuted instantiation: box.c:ARY_PTR_USING_P Unexecuted instantiation: compile.c:ARY_PTR_USING_P Unexecuted instantiation: concurrent_set.c:ARY_PTR_USING_P Unexecuted instantiation: cont.c:ARY_PTR_USING_P Unexecuted instantiation: debug.c:ARY_PTR_USING_P Unexecuted instantiation: dir.c:ARY_PTR_USING_P Unexecuted instantiation: parse.c:ARY_PTR_USING_P |
76 | | |
77 | | RBIMPL_ATTR_MAYBE_UNUSED() |
78 | | static inline int |
79 | | ary_should_not_be_shared_and_embedded(VALUE ary) |
80 | 0 | { |
81 | 0 | return !FL_ALL_RAW(ary, RARRAY_SHARED_FLAG|RARRAY_EMBED_FLAG); |
82 | 0 | } Unexecuted instantiation: array.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: bignum.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: class.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: complex.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: enum.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: enumerator.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: error.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: eval.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: file.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: gc.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: hash.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: imemo.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: io.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: io_buffer.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: iseq.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: load.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: marshal.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: memory_view.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: node.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: node_dump.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: numeric.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: object.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: pack.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: proc.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: process.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: ractor.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: random.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: range.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: rational.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: re.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: ruby.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: scheduler.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: set.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: shape.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: signal.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: st.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: string.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: struct.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: symbol.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: thread.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: time.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: transcode.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: util.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: variable.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: version.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: vm.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: vm_backtrace.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: vm_dump.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: vm_sync.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: vm_trace.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: weakmap.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: builtin.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: ast.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: box.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: compile.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: concurrent_set.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: cont.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: debug.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: dir.c:ary_should_not_be_shared_and_embedded Unexecuted instantiation: parse.c:ary_should_not_be_shared_and_embedded |
83 | | |
84 | | static inline bool |
85 | | ARY_SHARED_P(VALUE ary) |
86 | 5.77M | { |
87 | 5.77M | assert(RB_TYPE_P(ary, T_ARRAY)); |
88 | 5.77M | assert(ary_should_not_be_shared_and_embedded(ary)); |
89 | 5.77M | return FL_TEST_RAW(ary, RARRAY_SHARED_FLAG); |
90 | 5.77M | } Line | Count | Source | 86 | 5.23M | { | 87 | 5.23M | assert(RB_TYPE_P(ary, T_ARRAY)); | 88 | 5.23M | assert(ary_should_not_be_shared_and_embedded(ary)); | 89 | 5.23M | return FL_TEST_RAW(ary, RARRAY_SHARED_FLAG); | 90 | 5.23M | } |
Unexecuted instantiation: bignum.c:ARY_SHARED_P Unexecuted instantiation: class.c:ARY_SHARED_P Unexecuted instantiation: complex.c:ARY_SHARED_P Unexecuted instantiation: enum.c:ARY_SHARED_P Unexecuted instantiation: enumerator.c:ARY_SHARED_P Unexecuted instantiation: error.c:ARY_SHARED_P Unexecuted instantiation: eval.c:ARY_SHARED_P Unexecuted instantiation: file.c:ARY_SHARED_P Line | Count | Source | 86 | 540k | { | 87 | 540k | assert(RB_TYPE_P(ary, T_ARRAY)); | 88 | 540k | assert(ary_should_not_be_shared_and_embedded(ary)); | 89 | 540k | return FL_TEST_RAW(ary, RARRAY_SHARED_FLAG); | 90 | 540k | } |
Unexecuted instantiation: hash.c:ARY_SHARED_P Unexecuted instantiation: imemo.c:ARY_SHARED_P Unexecuted instantiation: io.c:ARY_SHARED_P Unexecuted instantiation: io_buffer.c:ARY_SHARED_P Unexecuted instantiation: iseq.c:ARY_SHARED_P Unexecuted instantiation: load.c:ARY_SHARED_P Unexecuted instantiation: marshal.c:ARY_SHARED_P Unexecuted instantiation: memory_view.c:ARY_SHARED_P Unexecuted instantiation: node.c:ARY_SHARED_P Unexecuted instantiation: node_dump.c:ARY_SHARED_P Unexecuted instantiation: numeric.c:ARY_SHARED_P Unexecuted instantiation: object.c:ARY_SHARED_P Unexecuted instantiation: pack.c:ARY_SHARED_P Unexecuted instantiation: proc.c:ARY_SHARED_P Unexecuted instantiation: process.c:ARY_SHARED_P Unexecuted instantiation: ractor.c:ARY_SHARED_P Unexecuted instantiation: random.c:ARY_SHARED_P Unexecuted instantiation: range.c:ARY_SHARED_P Unexecuted instantiation: rational.c:ARY_SHARED_P Unexecuted instantiation: re.c:ARY_SHARED_P Unexecuted instantiation: ruby.c:ARY_SHARED_P Unexecuted instantiation: scheduler.c:ARY_SHARED_P Unexecuted instantiation: set.c:ARY_SHARED_P Unexecuted instantiation: shape.c:ARY_SHARED_P Unexecuted instantiation: signal.c:ARY_SHARED_P Unexecuted instantiation: st.c:ARY_SHARED_P Unexecuted instantiation: string.c:ARY_SHARED_P Unexecuted instantiation: struct.c:ARY_SHARED_P Unexecuted instantiation: symbol.c:ARY_SHARED_P Unexecuted instantiation: thread.c:ARY_SHARED_P Unexecuted instantiation: time.c:ARY_SHARED_P Unexecuted instantiation: transcode.c:ARY_SHARED_P Unexecuted instantiation: util.c:ARY_SHARED_P Unexecuted instantiation: variable.c:ARY_SHARED_P Unexecuted instantiation: version.c:ARY_SHARED_P Unexecuted instantiation: vm.c:ARY_SHARED_P Unexecuted instantiation: vm_backtrace.c:ARY_SHARED_P Unexecuted instantiation: vm_dump.c:ARY_SHARED_P Unexecuted instantiation: vm_sync.c:ARY_SHARED_P Unexecuted instantiation: vm_trace.c:ARY_SHARED_P Unexecuted instantiation: weakmap.c:ARY_SHARED_P Unexecuted instantiation: builtin.c:ARY_SHARED_P Unexecuted instantiation: ast.c:ARY_SHARED_P Unexecuted instantiation: box.c:ARY_SHARED_P Unexecuted instantiation: compile.c:ARY_SHARED_P Unexecuted instantiation: concurrent_set.c:ARY_SHARED_P Unexecuted instantiation: cont.c:ARY_SHARED_P Unexecuted instantiation: debug.c:ARY_SHARED_P Unexecuted instantiation: dir.c:ARY_SHARED_P Unexecuted instantiation: parse.c:ARY_SHARED_P |
91 | | |
92 | | static inline bool |
93 | | ARY_EMBED_P(VALUE ary) |
94 | 10.5M | { |
95 | 10.5M | assert(RB_TYPE_P(ary, T_ARRAY)); |
96 | 10.5M | assert(ary_should_not_be_shared_and_embedded(ary)); |
97 | 10.5M | return FL_TEST_RAW(ary, RARRAY_EMBED_FLAG); |
98 | 10.5M | } Line | Count | Source | 94 | 10.5M | { | 95 | 10.5M | assert(RB_TYPE_P(ary, T_ARRAY)); | 96 | 10.5M | assert(ary_should_not_be_shared_and_embedded(ary)); | 97 | 10.5M | return FL_TEST_RAW(ary, RARRAY_EMBED_FLAG); | 98 | 10.5M | } |
Unexecuted instantiation: bignum.c:ARY_EMBED_P Unexecuted instantiation: class.c:ARY_EMBED_P Unexecuted instantiation: complex.c:ARY_EMBED_P Unexecuted instantiation: enum.c:ARY_EMBED_P Unexecuted instantiation: enumerator.c:ARY_EMBED_P Unexecuted instantiation: error.c:ARY_EMBED_P Unexecuted instantiation: eval.c:ARY_EMBED_P Unexecuted instantiation: file.c:ARY_EMBED_P Unexecuted instantiation: gc.c:ARY_EMBED_P Unexecuted instantiation: hash.c:ARY_EMBED_P Unexecuted instantiation: imemo.c:ARY_EMBED_P Unexecuted instantiation: io.c:ARY_EMBED_P Unexecuted instantiation: io_buffer.c:ARY_EMBED_P Unexecuted instantiation: iseq.c:ARY_EMBED_P Unexecuted instantiation: load.c:ARY_EMBED_P Unexecuted instantiation: marshal.c:ARY_EMBED_P Unexecuted instantiation: memory_view.c:ARY_EMBED_P Unexecuted instantiation: node.c:ARY_EMBED_P Unexecuted instantiation: node_dump.c:ARY_EMBED_P Unexecuted instantiation: numeric.c:ARY_EMBED_P Unexecuted instantiation: object.c:ARY_EMBED_P Unexecuted instantiation: pack.c:ARY_EMBED_P Unexecuted instantiation: proc.c:ARY_EMBED_P Unexecuted instantiation: process.c:ARY_EMBED_P Unexecuted instantiation: ractor.c:ARY_EMBED_P Unexecuted instantiation: random.c:ARY_EMBED_P Unexecuted instantiation: range.c:ARY_EMBED_P Unexecuted instantiation: rational.c:ARY_EMBED_P Unexecuted instantiation: re.c:ARY_EMBED_P Unexecuted instantiation: ruby.c:ARY_EMBED_P Unexecuted instantiation: scheduler.c:ARY_EMBED_P Unexecuted instantiation: set.c:ARY_EMBED_P Unexecuted instantiation: shape.c:ARY_EMBED_P Unexecuted instantiation: signal.c:ARY_EMBED_P Unexecuted instantiation: st.c:ARY_EMBED_P Unexecuted instantiation: string.c:ARY_EMBED_P Unexecuted instantiation: struct.c:ARY_EMBED_P Unexecuted instantiation: symbol.c:ARY_EMBED_P Unexecuted instantiation: thread.c:ARY_EMBED_P Unexecuted instantiation: time.c:ARY_EMBED_P Unexecuted instantiation: transcode.c:ARY_EMBED_P Unexecuted instantiation: util.c:ARY_EMBED_P Unexecuted instantiation: variable.c:ARY_EMBED_P Unexecuted instantiation: version.c:ARY_EMBED_P Unexecuted instantiation: vm.c:ARY_EMBED_P Unexecuted instantiation: vm_backtrace.c:ARY_EMBED_P Unexecuted instantiation: vm_dump.c:ARY_EMBED_P Unexecuted instantiation: vm_sync.c:ARY_EMBED_P Unexecuted instantiation: vm_trace.c:ARY_EMBED_P Unexecuted instantiation: weakmap.c:ARY_EMBED_P Unexecuted instantiation: builtin.c:ARY_EMBED_P Unexecuted instantiation: ast.c:ARY_EMBED_P Unexecuted instantiation: box.c:ARY_EMBED_P Unexecuted instantiation: compile.c:ARY_EMBED_P Unexecuted instantiation: concurrent_set.c:ARY_EMBED_P Unexecuted instantiation: cont.c:ARY_EMBED_P Unexecuted instantiation: debug.c:ARY_EMBED_P Unexecuted instantiation: dir.c:ARY_EMBED_P Unexecuted instantiation: parse.c:ARY_EMBED_P |
99 | | |
100 | | static inline VALUE |
101 | | ARY_SHARED_ROOT(VALUE ary) |
102 | 57.1k | { |
103 | 57.1k | assert(ARY_SHARED_P(ary)); |
104 | 57.1k | return RARRAY(ary)->as.heap.aux.shared_root; |
105 | 57.1k | } Line | Count | Source | 102 | 243 | { | 103 | 243 | assert(ARY_SHARED_P(ary)); | 104 | 243 | return RARRAY(ary)->as.heap.aux.shared_root; | 105 | 243 | } |
Unexecuted instantiation: bignum.c:ARY_SHARED_ROOT Unexecuted instantiation: class.c:ARY_SHARED_ROOT Unexecuted instantiation: complex.c:ARY_SHARED_ROOT Unexecuted instantiation: enum.c:ARY_SHARED_ROOT Unexecuted instantiation: enumerator.c:ARY_SHARED_ROOT Unexecuted instantiation: error.c:ARY_SHARED_ROOT Unexecuted instantiation: eval.c:ARY_SHARED_ROOT Unexecuted instantiation: file.c:ARY_SHARED_ROOT Line | Count | Source | 102 | 56.8k | { | 103 | 56.8k | assert(ARY_SHARED_P(ary)); | 104 | 56.8k | return RARRAY(ary)->as.heap.aux.shared_root; | 105 | 56.8k | } |
Unexecuted instantiation: hash.c:ARY_SHARED_ROOT Unexecuted instantiation: imemo.c:ARY_SHARED_ROOT Unexecuted instantiation: io.c:ARY_SHARED_ROOT Unexecuted instantiation: io_buffer.c:ARY_SHARED_ROOT Unexecuted instantiation: iseq.c:ARY_SHARED_ROOT Unexecuted instantiation: load.c:ARY_SHARED_ROOT Unexecuted instantiation: marshal.c:ARY_SHARED_ROOT Unexecuted instantiation: memory_view.c:ARY_SHARED_ROOT Unexecuted instantiation: node.c:ARY_SHARED_ROOT Unexecuted instantiation: node_dump.c:ARY_SHARED_ROOT Unexecuted instantiation: numeric.c:ARY_SHARED_ROOT Unexecuted instantiation: object.c:ARY_SHARED_ROOT Unexecuted instantiation: pack.c:ARY_SHARED_ROOT Unexecuted instantiation: proc.c:ARY_SHARED_ROOT Unexecuted instantiation: process.c:ARY_SHARED_ROOT Unexecuted instantiation: ractor.c:ARY_SHARED_ROOT Unexecuted instantiation: random.c:ARY_SHARED_ROOT Unexecuted instantiation: range.c:ARY_SHARED_ROOT Unexecuted instantiation: rational.c:ARY_SHARED_ROOT Unexecuted instantiation: re.c:ARY_SHARED_ROOT Unexecuted instantiation: ruby.c:ARY_SHARED_ROOT Unexecuted instantiation: scheduler.c:ARY_SHARED_ROOT Unexecuted instantiation: set.c:ARY_SHARED_ROOT Unexecuted instantiation: shape.c:ARY_SHARED_ROOT Unexecuted instantiation: signal.c:ARY_SHARED_ROOT Unexecuted instantiation: st.c:ARY_SHARED_ROOT Unexecuted instantiation: string.c:ARY_SHARED_ROOT Unexecuted instantiation: struct.c:ARY_SHARED_ROOT Unexecuted instantiation: symbol.c:ARY_SHARED_ROOT Unexecuted instantiation: thread.c:ARY_SHARED_ROOT Unexecuted instantiation: time.c:ARY_SHARED_ROOT Unexecuted instantiation: transcode.c:ARY_SHARED_ROOT Unexecuted instantiation: util.c:ARY_SHARED_ROOT Unexecuted instantiation: variable.c:ARY_SHARED_ROOT Unexecuted instantiation: version.c:ARY_SHARED_ROOT Unexecuted instantiation: vm.c:ARY_SHARED_ROOT Unexecuted instantiation: vm_backtrace.c:ARY_SHARED_ROOT Unexecuted instantiation: vm_dump.c:ARY_SHARED_ROOT Unexecuted instantiation: vm_sync.c:ARY_SHARED_ROOT Unexecuted instantiation: vm_trace.c:ARY_SHARED_ROOT Unexecuted instantiation: weakmap.c:ARY_SHARED_ROOT Unexecuted instantiation: builtin.c:ARY_SHARED_ROOT Unexecuted instantiation: ast.c:ARY_SHARED_ROOT Unexecuted instantiation: box.c:ARY_SHARED_ROOT Unexecuted instantiation: compile.c:ARY_SHARED_ROOT Unexecuted instantiation: concurrent_set.c:ARY_SHARED_ROOT Unexecuted instantiation: cont.c:ARY_SHARED_ROOT Unexecuted instantiation: debug.c:ARY_SHARED_ROOT Unexecuted instantiation: dir.c:ARY_SHARED_ROOT Unexecuted instantiation: parse.c:ARY_SHARED_ROOT |
106 | | |
107 | | static inline bool |
108 | | ARY_SHARED_ROOT_P(VALUE ary) |
109 | 498k | { |
110 | 498k | assert(RB_TYPE_P(ary, T_ARRAY)); |
111 | 498k | return FL_TEST_RAW(ary, RARRAY_SHARED_ROOT_FLAG); |
112 | 498k | } array.c:ARY_SHARED_ROOT_P Line | Count | Source | 109 | 498k | { | 110 | 498k | assert(RB_TYPE_P(ary, T_ARRAY)); | 111 | 498k | return FL_TEST_RAW(ary, RARRAY_SHARED_ROOT_FLAG); | 112 | 498k | } |
Unexecuted instantiation: bignum.c:ARY_SHARED_ROOT_P Unexecuted instantiation: class.c:ARY_SHARED_ROOT_P Unexecuted instantiation: complex.c:ARY_SHARED_ROOT_P Unexecuted instantiation: enum.c:ARY_SHARED_ROOT_P Unexecuted instantiation: enumerator.c:ARY_SHARED_ROOT_P Unexecuted instantiation: error.c:ARY_SHARED_ROOT_P Unexecuted instantiation: eval.c:ARY_SHARED_ROOT_P Unexecuted instantiation: file.c:ARY_SHARED_ROOT_P Unexecuted instantiation: gc.c:ARY_SHARED_ROOT_P Unexecuted instantiation: hash.c:ARY_SHARED_ROOT_P Unexecuted instantiation: imemo.c:ARY_SHARED_ROOT_P Unexecuted instantiation: io.c:ARY_SHARED_ROOT_P Unexecuted instantiation: io_buffer.c:ARY_SHARED_ROOT_P Unexecuted instantiation: iseq.c:ARY_SHARED_ROOT_P Unexecuted instantiation: load.c:ARY_SHARED_ROOT_P Unexecuted instantiation: marshal.c:ARY_SHARED_ROOT_P Unexecuted instantiation: memory_view.c:ARY_SHARED_ROOT_P Unexecuted instantiation: node.c:ARY_SHARED_ROOT_P Unexecuted instantiation: node_dump.c:ARY_SHARED_ROOT_P Unexecuted instantiation: numeric.c:ARY_SHARED_ROOT_P Unexecuted instantiation: object.c:ARY_SHARED_ROOT_P Unexecuted instantiation: pack.c:ARY_SHARED_ROOT_P Unexecuted instantiation: proc.c:ARY_SHARED_ROOT_P Unexecuted instantiation: process.c:ARY_SHARED_ROOT_P Unexecuted instantiation: ractor.c:ARY_SHARED_ROOT_P Unexecuted instantiation: random.c:ARY_SHARED_ROOT_P Unexecuted instantiation: range.c:ARY_SHARED_ROOT_P Unexecuted instantiation: rational.c:ARY_SHARED_ROOT_P Unexecuted instantiation: re.c:ARY_SHARED_ROOT_P Unexecuted instantiation: ruby.c:ARY_SHARED_ROOT_P Unexecuted instantiation: scheduler.c:ARY_SHARED_ROOT_P Unexecuted instantiation: set.c:ARY_SHARED_ROOT_P Unexecuted instantiation: shape.c:ARY_SHARED_ROOT_P Unexecuted instantiation: signal.c:ARY_SHARED_ROOT_P Unexecuted instantiation: st.c:ARY_SHARED_ROOT_P Unexecuted instantiation: string.c:ARY_SHARED_ROOT_P Unexecuted instantiation: struct.c:ARY_SHARED_ROOT_P Unexecuted instantiation: symbol.c:ARY_SHARED_ROOT_P Unexecuted instantiation: thread.c:ARY_SHARED_ROOT_P Unexecuted instantiation: time.c:ARY_SHARED_ROOT_P Unexecuted instantiation: transcode.c:ARY_SHARED_ROOT_P Unexecuted instantiation: util.c:ARY_SHARED_ROOT_P Unexecuted instantiation: variable.c:ARY_SHARED_ROOT_P Unexecuted instantiation: version.c:ARY_SHARED_ROOT_P Unexecuted instantiation: vm.c:ARY_SHARED_ROOT_P Unexecuted instantiation: vm_backtrace.c:ARY_SHARED_ROOT_P Unexecuted instantiation: vm_dump.c:ARY_SHARED_ROOT_P Unexecuted instantiation: vm_sync.c:ARY_SHARED_ROOT_P Unexecuted instantiation: vm_trace.c:ARY_SHARED_ROOT_P Unexecuted instantiation: weakmap.c:ARY_SHARED_ROOT_P Unexecuted instantiation: builtin.c:ARY_SHARED_ROOT_P Unexecuted instantiation: ast.c:ARY_SHARED_ROOT_P Unexecuted instantiation: box.c:ARY_SHARED_ROOT_P Unexecuted instantiation: compile.c:ARY_SHARED_ROOT_P Unexecuted instantiation: concurrent_set.c:ARY_SHARED_ROOT_P Unexecuted instantiation: cont.c:ARY_SHARED_ROOT_P Unexecuted instantiation: debug.c:ARY_SHARED_ROOT_P Unexecuted instantiation: dir.c:ARY_SHARED_ROOT_P Unexecuted instantiation: parse.c:ARY_SHARED_ROOT_P |
113 | | |
114 | | static inline long |
115 | | ARY_SHARED_ROOT_REFCNT(VALUE ary) |
116 | 223 | { |
117 | 223 | assert(ARY_SHARED_ROOT_P(ary)); |
118 | 223 | return RARRAY(ary)->as.heap.aux.capa; |
119 | 223 | } array.c:ARY_SHARED_ROOT_REFCNT Line | Count | Source | 116 | 223 | { | 117 | 223 | assert(ARY_SHARED_ROOT_P(ary)); | 118 | 223 | return RARRAY(ary)->as.heap.aux.capa; | 119 | 223 | } |
Unexecuted instantiation: bignum.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: class.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: complex.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: enum.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: enumerator.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: error.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: eval.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: file.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: gc.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: hash.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: imemo.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: io.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: io_buffer.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: iseq.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: load.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: marshal.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: memory_view.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: node.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: node_dump.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: numeric.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: object.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: pack.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: proc.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: process.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: ractor.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: random.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: range.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: rational.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: re.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: ruby.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: scheduler.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: set.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: shape.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: signal.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: st.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: string.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: struct.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: symbol.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: thread.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: time.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: transcode.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: util.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: variable.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: version.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: vm.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: vm_backtrace.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: vm_dump.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: vm_sync.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: vm_trace.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: weakmap.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: builtin.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: ast.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: box.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: compile.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: concurrent_set.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: cont.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: debug.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: dir.c:ARY_SHARED_ROOT_REFCNT Unexecuted instantiation: parse.c:ARY_SHARED_ROOT_REFCNT |
120 | | |
121 | | #undef rb_ary_new_from_args |
122 | | #if RBIMPL_HAS_WARNING("-Wgnu-zero-variadic-macro-arguments") |
123 | | # /* Skip it; clang -pedantic doesn't like the following */ |
124 | | #elif defined(__GNUC__) && defined(HAVE_VA_ARGS_MACRO) |
125 | | #define rb_ary_new_from_args(n, ...) \ |
126 | | __extension__ ({ \ |
127 | | const VALUE args_to_new_ary[] = {__VA_ARGS__}; \ |
128 | | if (__builtin_constant_p(n)) { \ |
129 | | STATIC_ASSERT(rb_ary_new_from_args, numberof(args_to_new_ary) == (n)); \ |
130 | | } \ |
131 | | rb_ary_new_from_values(numberof(args_to_new_ary), args_to_new_ary); \ |
132 | | }) |
133 | | #endif |
134 | | |
135 | | #undef RARRAY_AREF |
136 | | RBIMPL_ATTR_PURE_UNLESS_DEBUG() |
137 | | RBIMPL_ATTR_ARTIFICIAL() |
138 | | static inline VALUE |
139 | | RARRAY_AREF(VALUE ary, long i) |
140 | 82.3k | { |
141 | 82.3k | VALUE val; |
142 | 82.3k | RBIMPL_ASSERT_TYPE(ary, RUBY_T_ARRAY); |
143 | | |
144 | 82.3k | RUBY_ASSERT(i < RARRAY_LEN(ary)); |
145 | | |
146 | 82.3k | RBIMPL_WARNING_PUSH(); |
147 | | #if defined(__GNUC__) && !defined(__clang__) && __GNUC__ == 13 |
148 | | RBIMPL_WARNING_IGNORED(-Warray-bounds); |
149 | | #endif |
150 | 82.3k | val = RARRAY_CONST_PTR(ary)[i]; |
151 | 82.3k | RBIMPL_WARNING_POP(); |
152 | 82.3k | return val; |
153 | 82.3k | } Line | Count | Source | 140 | 13.4k | { | 141 | 13.4k | VALUE val; | 142 | 13.4k | RBIMPL_ASSERT_TYPE(ary, RUBY_T_ARRAY); | 143 | | | 144 | 13.4k | RUBY_ASSERT(i < RARRAY_LEN(ary)); | 145 | | | 146 | 13.4k | RBIMPL_WARNING_PUSH(); | 147 | | #if defined(__GNUC__) && !defined(__clang__) && __GNUC__ == 13 | 148 | | RBIMPL_WARNING_IGNORED(-Warray-bounds); | 149 | | #endif | 150 | 13.4k | val = RARRAY_CONST_PTR(ary)[i]; | 151 | 13.4k | RBIMPL_WARNING_POP(); | 152 | 13.4k | return val; | 153 | 13.4k | } |
Unexecuted instantiation: bignum.c:RARRAY_AREF Unexecuted instantiation: class.c:RARRAY_AREF Unexecuted instantiation: complex.c:RARRAY_AREF Unexecuted instantiation: enum.c:RARRAY_AREF Unexecuted instantiation: enumerator.c:RARRAY_AREF Unexecuted instantiation: error.c:RARRAY_AREF Unexecuted instantiation: eval.c:RARRAY_AREF Unexecuted instantiation: file.c:RARRAY_AREF Unexecuted instantiation: gc.c:RARRAY_AREF Unexecuted instantiation: hash.c:RARRAY_AREF Unexecuted instantiation: imemo.c:RARRAY_AREF Unexecuted instantiation: io.c:RARRAY_AREF Unexecuted instantiation: io_buffer.c:RARRAY_AREF Line | Count | Source | 140 | 68.5k | { | 141 | 68.5k | VALUE val; | 142 | 68.5k | RBIMPL_ASSERT_TYPE(ary, RUBY_T_ARRAY); | 143 | | | 144 | 68.5k | RUBY_ASSERT(i < RARRAY_LEN(ary)); | 145 | | | 146 | 68.5k | RBIMPL_WARNING_PUSH(); | 147 | | #if defined(__GNUC__) && !defined(__clang__) && __GNUC__ == 13 | 148 | | RBIMPL_WARNING_IGNORED(-Warray-bounds); | 149 | | #endif | 150 | 68.5k | val = RARRAY_CONST_PTR(ary)[i]; | 151 | 68.5k | RBIMPL_WARNING_POP(); | 152 | 68.5k | return val; | 153 | 68.5k | } |
Unexecuted instantiation: load.c:RARRAY_AREF Unexecuted instantiation: marshal.c:RARRAY_AREF Unexecuted instantiation: memory_view.c:RARRAY_AREF Unexecuted instantiation: node.c:RARRAY_AREF Unexecuted instantiation: node_dump.c:RARRAY_AREF Line | Count | Source | 140 | 402 | { | 141 | 402 | VALUE val; | 142 | 402 | RBIMPL_ASSERT_TYPE(ary, RUBY_T_ARRAY); | 143 | | | 144 | 402 | RUBY_ASSERT(i < RARRAY_LEN(ary)); | 145 | | | 146 | 402 | RBIMPL_WARNING_PUSH(); | 147 | | #if defined(__GNUC__) && !defined(__clang__) && __GNUC__ == 13 | 148 | | RBIMPL_WARNING_IGNORED(-Warray-bounds); | 149 | | #endif | 150 | 402 | val = RARRAY_CONST_PTR(ary)[i]; | 151 | 402 | RBIMPL_WARNING_POP(); | 152 | 402 | return val; | 153 | 402 | } |
Unexecuted instantiation: object.c:RARRAY_AREF Unexecuted instantiation: pack.c:RARRAY_AREF Unexecuted instantiation: proc.c:RARRAY_AREF Unexecuted instantiation: process.c:RARRAY_AREF Unexecuted instantiation: ractor.c:RARRAY_AREF Unexecuted instantiation: random.c:RARRAY_AREF Unexecuted instantiation: range.c:RARRAY_AREF Unexecuted instantiation: rational.c:RARRAY_AREF Unexecuted instantiation: re.c:RARRAY_AREF Unexecuted instantiation: ruby.c:RARRAY_AREF Unexecuted instantiation: scheduler.c:RARRAY_AREF Unexecuted instantiation: set.c:RARRAY_AREF Unexecuted instantiation: shape.c:RARRAY_AREF Unexecuted instantiation: signal.c:RARRAY_AREF Unexecuted instantiation: st.c:RARRAY_AREF Unexecuted instantiation: string.c:RARRAY_AREF Line | Count | Source | 140 | 36 | { | 141 | 36 | VALUE val; | 142 | 36 | RBIMPL_ASSERT_TYPE(ary, RUBY_T_ARRAY); | 143 | | | 144 | 36 | RUBY_ASSERT(i < RARRAY_LEN(ary)); | 145 | | | 146 | 36 | RBIMPL_WARNING_PUSH(); | 147 | | #if defined(__GNUC__) && !defined(__clang__) && __GNUC__ == 13 | 148 | | RBIMPL_WARNING_IGNORED(-Warray-bounds); | 149 | | #endif | 150 | 36 | val = RARRAY_CONST_PTR(ary)[i]; | 151 | 36 | RBIMPL_WARNING_POP(); | 152 | 36 | return val; | 153 | 36 | } |
Unexecuted instantiation: symbol.c:RARRAY_AREF Unexecuted instantiation: thread.c:RARRAY_AREF Unexecuted instantiation: time.c:RARRAY_AREF Unexecuted instantiation: transcode.c:RARRAY_AREF Unexecuted instantiation: util.c:RARRAY_AREF Unexecuted instantiation: variable.c:RARRAY_AREF Unexecuted instantiation: version.c:RARRAY_AREF Unexecuted instantiation: vm.c:RARRAY_AREF Unexecuted instantiation: vm_backtrace.c:RARRAY_AREF Unexecuted instantiation: vm_dump.c:RARRAY_AREF Unexecuted instantiation: vm_sync.c:RARRAY_AREF Unexecuted instantiation: vm_trace.c:RARRAY_AREF Unexecuted instantiation: weakmap.c:RARRAY_AREF Unexecuted instantiation: builtin.c:RARRAY_AREF Unexecuted instantiation: ast.c:RARRAY_AREF Unexecuted instantiation: box.c:RARRAY_AREF Unexecuted instantiation: compile.c:RARRAY_AREF Unexecuted instantiation: concurrent_set.c:RARRAY_AREF Unexecuted instantiation: cont.c:RARRAY_AREF Unexecuted instantiation: debug.c:RARRAY_AREF Unexecuted instantiation: dir.c:RARRAY_AREF Unexecuted instantiation: parse.c:RARRAY_AREF |
154 | | |
155 | | #endif /* INTERNAL_ARRAY_H */ |