summaryrefslogtreecommitdiff
path: root/internal.h
diff options
context:
space:
mode:
author卜部昌平 <[email protected]>2019-10-24 18:08:52 +0900
committer卜部昌平 <[email protected]>2019-10-25 12:24:22 +0900
commit356e203a3acd4d3d20ba12f956fd22e17b6363e9 ()
tree78b4eccc00668da18debcb3e818146add31da10a /internal.h
parenta7ec88ad61eba8cda3f99805e6077cb515c0ad08 (diff)
more on struct rb_call_data
Replacing adjacent struct rb_call_info and struct rb_call_cache into a struct rb_call_data.
-rw-r--r--internal.h23
1 files changed, 13 insertions, 10 deletions
@@ -2356,7 +2356,7 @@ struct rb_method_definition_struct;
struct rb_execution_context_struct;
struct rb_control_frame_struct;
struct rb_calling_info;
-struct rb_call_info;
struct rb_call_cache {
/* inline cache: keys */
rb_serial_t method_state;
@@ -2369,8 +2369,7 @@ struct rb_call_cache {
VALUE (*call)(struct rb_execution_context_struct *ec,
struct rb_control_frame_struct *cfp,
struct rb_calling_info *calling,
- const struct rb_call_info *ci,
- struct rb_call_cache *cc);
union {
unsigned int index; /* used by ivar */
@@ -2378,19 +2377,23 @@ struct rb_call_cache {
int inc_sp; /* used by cfunc */
} aux;
};
-struct rb_call_cache_and_mid {
- struct rb_call_cache cc;
ID mid;
};
-VALUE rb_funcallv_with_cc(struct rb_call_cache_and_mid*, VALUE, ID, int, const VALUE*)
#if GCC_VERSION_SINCE(3, 3, 0) && defined(__OPTIMIZE__)
__attribute__((__visibility__("default"), __nonnull__(1)))
# define rb_funcallv(recv, mid, argc, argv) \
__extension__({ \
- static struct rb_call_cache_and_mid \
- rb_funcallv_opaque_cc = { {0, }, 0, }; \
- rb_funcallv_with_cc(&rb_funcallv_opaque_cc, \
- recv, mid, argc,argv); \
})
#endif
;