MonoMethodSignature *sig;
} GsharedvtWrapperInfo;
+typedef struct {
+ MonoMethod *method;
+} DelegateInvokeWrapperInfo;
+
/*
* 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
RemotingWrapperInfo remoting;
/* GSHAREDVT_IN_SIG/GSHAREDVT_OUT_SIG */
GsharedvtWrapperInfo gsharedvt;
+ /* DELEGATE_INVOKE */
+ DelegateInvokeWrapperInfo delegate_invoke;
} d;
} WrapperInfo;
mono_string_to_ansibstr (MonoString *string_obj);
gpointer
-mono_string_to_bstr (MonoString *string_obj);
+mono_ptr_to_bstr (gpointer ptr, int slen);
+
+gpointer
+mono_string_to_bstr(MonoString* str);
void mono_delegate_free_ftnptr (MonoDelegate *delegate);
mono_marshal_get_string_ctor_signature (MonoMethod *method);
MonoMethod *
-mono_marshal_get_managed_wrapper (MonoMethod *method, MonoClass *delegate_klass, uint32_t this_loc);
+mono_marshal_get_managed_wrapper (MonoMethod *method, MonoClass *delegate_klass, uint32_t this_loc, MonoError *exernal_error);
gpointer
mono_marshal_get_vtfixup_ftnptr (MonoImage *image, guint32 token, guint16 type);
MonoMethod *
mono_marshal_get_isinst_with_cache (void);
-MonoMethod *
-mono_marshal_get_isinst (MonoClass *klass);
-
-MonoMethod *
-mono_marshal_get_castclass (MonoClass *klass);
-
MonoMethod *
mono_marshal_get_stelemref (void);
mono_marshal_get_array_accessor_wrapper (MonoMethod *method);
MonoMethod *
-mono_marshal_get_generic_array_helper (MonoClass *klass, MonoClass *iface,
- gchar *name, MonoMethod *method);
+mono_marshal_get_generic_array_helper (MonoClass *klass, gchar *name, MonoMethod *method);
MonoMethod *
mono_marshal_get_thunk_invoke_wrapper (MonoMethod *method);
gpointer
ves_icall_System_Runtime_InteropServices_Marshal_StringToBSTR (MonoString *string);
+gpointer
+ves_icall_System_Runtime_InteropServices_Marshal_BufferToBSTR (MonoArray *ptr, int len);
+
gpointer
ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi (MonoString *string);
void*
ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem (int size);
+void*
+ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMemSize (gulong size);
+
void
ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem (void *ptr);