WRAPPER_SUBTYPE_GENERIC_ARRAY_HELPER,
/* Subtypes of MONO_WRAPPER_DELEGATE_INVOKE */
WRAPPER_SUBTYPE_DELEGATE_INVOKE_VIRTUAL,
- WRAPPER_SUBTYPE_DELEGATE_INVOKE_BOUND
+ WRAPPER_SUBTYPE_DELEGATE_INVOKE_BOUND,
+ /* Subtypes of MONO_WRAPPER_UNKNOWN */
+ WRAPPER_SUBTYPE_GSHAREDVT_IN_SIG,
+ WRAPPER_SUBTYPE_GSHAREDVT_OUT_SIG,
} WrapperSubtype;
typedef struct {
MonoMethod *method;
/* For WRAPPER_SUBTYPE_RUNTIME_INVOKE_NORMAL */
MonoMethodSignature *sig;
- gboolean pass_rgctx;
} RuntimeInvokeWrapperInfo;
typedef struct {
MonoMethod *method;
} RemotingWrapperInfo;
+typedef struct {
+ MonoMethodSignature *sig;
+} GsharedvtWrapperInfo;
+
/*
* This structure contains additional information to uniquely identify a given wrapper
* method. It can be retrieved by mono_marshal_get_wrapper_info () for certain types
UnboxWrapperInfo unbox;
/* MONO_WRAPPER_REMOTING_INVOKE/MONO_WRAPPER_REMOTING_INVOKE_WITH_CHECK/MONO_WRAPPER_XDOMAIN_INVOKE */
RemotingWrapperInfo remoting;
+ /* GSHAREDVT_IN_SIG/GSHAREDVT_OUT_SIG */
+ GsharedvtWrapperInfo gsharedvt;
} d;
} WrapperInfo;
mono_marshal_get_delegate_invoke_internal (MonoMethod *method, gboolean callvirt, gboolean static_method_with_first_arg_bound, MonoMethod *target_method);
MonoMethod *
-mono_marshal_get_runtime_invoke (MonoMethod *method, gboolean is_virtual, gboolean pass_rgctx);
+mono_marshal_get_runtime_invoke (MonoMethod *method, gboolean is_virtual);
MonoMethod*
mono_marshal_get_runtime_invoke_dynamic (void);
+MonoMethod *
+mono_marshal_get_runtime_invoke_for_sig (MonoMethodSignature *sig);
+
MonoMethodSignature*
mono_marshal_get_string_ctor_signature (MonoMethod *method);