@@ -56,11 +56,13 @@ fn main() {
56
56
57
57
// From include/ruby/internal/intern/hash.h
58
58
. allowlist_function ( "rb_hash_aset" )
59
+ . allowlist_function ( "rb_hash_aref" )
59
60
. allowlist_function ( "rb_hash_bulk_insert" )
60
61
61
62
// From include/ruby/internal/intern/array.h
62
63
. allowlist_function ( "rb_ary_resurrect" )
63
64
. allowlist_function ( "rb_ary_clear" )
65
+ . allowlist_function ( "rb_ary_store" )
64
66
65
67
// From internal/array.h
66
68
. allowlist_function ( "rb_ec_ary_new_from_values" )
@@ -84,16 +86,19 @@ fn main() {
84
86
. allowlist_var ( "rb_cFloat" )
85
87
. allowlist_var ( "rb_cString" )
86
88
. allowlist_var ( "rb_cThread" )
89
+ . allowlist_var ( "rb_cArray" )
90
+ . allowlist_var ( "rb_cHash" )
87
91
88
92
// From ruby/internal/globals.h
89
93
. allowlist_var ( "rb_mKernel" )
90
94
91
95
// From vm_callinfo.h
92
- . allowlist_type ( "VM_CALL.*" ) // This doesn't work, possibly due to the odd structure of the #defines
93
- . allowlist_type ( "vm_call_flag_bits" ) // So instead we include the other enum and do the bit-shift ourselves
94
- . blocklist_type ( "rb_call_data" )
95
- . opaque_type ( "rb_call_data" )
96
- . blocklist_type ( "rb_callinfo_kwarg" ) // Contains a VALUE[] array of undefined size
96
+ . allowlist_type ( "VM_CALL.*" ) // This doesn't work, possibly due to the odd structure of the #defines
97
+ . allowlist_type ( "vm_call_flag_bits" ) // So instead we include the other enum and do the bit-shift ourselves.
98
+ . allowlist_type ( "rb_call_data" )
99
+ . blocklist_type ( "rb_callcache.*" ) // Not used yet - opaque to make it easy to import rb_call_data
100
+ . opaque_type ( "rb_callcache.*" )
101
+ . blocklist_type ( "rb_callinfo_kwarg" ) // Contains a VALUE[] array of undefined size, so we don't import
97
102
. opaque_type ( "rb_callinfo_kwarg" )
98
103
. allowlist_type ( "rb_callinfo" )
99
104
@@ -151,6 +156,8 @@ fn main() {
151
156
. allowlist_function ( "rb_method_entry_at" )
152
157
. allowlist_type ( "rb_method_entry_t" )
153
158
. blocklist_type ( "rb_method_cfunc_t" )
159
+ . blocklist_type ( "rb_method_definition_.*" ) // Large struct with a bitfield and union of many types - don't import (yet?)
160
+ . opaque_type ( "rb_method_definition_.*" )
154
161
155
162
// From vm_core.h
156
163
. allowlist_type ( "ruby_basic_operators" )
@@ -168,9 +175,7 @@ fn main() {
168
175
. allowlist_type ( "iseq_inline_iv_cache_entry" )
169
176
. allowlist_type ( "ICVARC" ) // pointer to iseq_inline_cvar_cache_entry
170
177
. allowlist_type ( "iseq_inline_cvar_cache_entry" )
171
- . blocklist_type ( "rb_method_definition_.*" )
172
- . opaque_type ( "rb_method_definition_.*" )
173
- . blocklist_type ( "rb_execution_context_.*" )
178
+ . blocklist_type ( "rb_execution_context_.*" ) // Large struct with various-type fields and an ifdef, so we don't import
174
179
. opaque_type ( "rb_execution_context_.*" )
175
180
. blocklist_type ( "rb_control_frame_struct" )
176
181
. opaque_type ( "rb_control_frame_struct" )
0 commit comments