1 #ifndef __MONO_OBJECT_INTERNALS_H__
2 #define __MONO_OBJECT_INTERNALS_H__
4 #include <mono/metadata/object.h>
5 #include <mono/metadata/reflection.h>
6 #include <mono/io-layer/io-layer.h>
10 #define mono_assert(expr) G_STMT_START{ \
14 char *msg = g_strdup_printf ("file %s: line %d (%s): " \
15 "assertion failed: (%s)", __FILE__, __LINE__, \
16 __PRETTY_FUNCTION__, #expr); \
17 ex = mono_get_exception_execution_engine (msg); \
19 mono_raise_exception (ex); \
22 #define mono_assert_not_reached() G_STMT_START{ \
24 char *msg = g_strdup_printf ("file %s: line %d (%s): " \
25 "should not be reached", __FILE__, __LINE__, __PRETTY_FUNCTION__); \
26 ex = mono_get_exception_execution_engine (msg); \
28 mono_raise_exception (ex); \
31 #define mono_assert(expr) G_STMT_START{ \
35 char *msg = g_strdup_printf ("file %s: line %d: " \
36 "assertion failed: (%s)", __FILE__, __LINE__, \
38 ex = mono_get_exception_execution_engine (msg); \
40 mono_raise_exception (ex); \
43 #define mono_assert_not_reached() G_STMT_START{ \
45 char *msg = g_strdup_printf ("file %s: line %d): " \
46 "should not be reached", __FILE__, __LINE__); \
47 ex = mono_get_exception_execution_engine (msg); \
49 mono_raise_exception (ex); \
53 #define mono_assert(expr) g_assert(expr)
54 #define mono_assert_not_reached() g_assert_not_reached()
57 #define MONO_CHECK_ARG(arg, expr) G_STMT_START{ \
61 char *msg = g_strdup_printf ("assertion `%s' failed", \
63 if (arg) {} /* check if the name exists */ \
64 ex = mono_get_exception_argument (#arg, msg); \
66 mono_raise_exception (ex); \
69 #define MONO_CHECK_ARG_NULL(arg) G_STMT_START{ \
73 if (arg) {} /* check if the name exists */ \
74 ex = mono_get_exception_argument_null (#arg); \
75 mono_raise_exception (ex); \
79 /* 16 == default capacity */
80 #define mono_stringbuilder_capacity(sb) ((sb)->str ? ((sb)->str->length) : 16)
85 } MonoMarshalByRefObject
;
87 /* This is a copy of System.AppDomain */
88 struct _MonoAppDomain
{
89 MonoMarshalByRefObject mbr
;
97 MonoString
*cached_str
;
109 } MonoArgumentHandle
;
112 MonoMethodSignature
*sig
;
118 struct _MonoException
{
120 MonoArray
*trace_ips
;
121 MonoObject
*inner_ex
;
123 MonoString
*help_link
;
124 MonoString
*class_name
;
125 MonoString
*stack_trace
;
126 MonoString
*remote_stack_trace
;
127 gint32 remote_stack_index
;
134 } MonoSystemException
;
137 MonoSystemException base
;
138 MonoString
*param_name
;
139 } MonoArgumentException
;
142 MonoSystemException base
;
144 MonoString
*type_name
;
145 } MonoTypeLoadException
;
149 MonoObject
*async_state
;
151 MonoObject
*async_delegate
;
153 MonoBoolean sync_completed
;
154 MonoBoolean completed
;
155 MonoBoolean endinvoke_called
;
156 MonoObject
*async_callback
;
160 MonoMarshalByRefObject object
;
162 MonoBoolean disposed
;
165 /* This is a copy of System.Runtime.Remoting.Messaging.CallType */
168 CallType_BeginInvoke
= 1,
169 CallType_EndInvoke
= 2,
173 struct _MonoReflectionType
{
180 MonoReflectionType
*class_to_proxy
;
182 MonoObject
*unwrapped_server
;
183 gint32 target_domain_id
;
184 MonoString
*target_uri
;
190 MonoRemoteClass
*remote_class
;
191 MonoBoolean custom_type_info
;
192 } MonoTransparentProxy
;
196 MonoReflectionMethod
*method
;
199 MonoArray
*arg_types
;
203 MonoAsyncResult
*async_result
;
210 gint32 native_offset
;
211 MonoReflectionMethod
*method
;
212 MonoString
*filename
;
219 int lock_thread_id
; /* to be used as the pre-shifted thread id in thin locks */
221 MonoObject
**culture_info
;
222 MonoObject
**ui_culture_info
;
223 MonoBoolean threadpool_thread
;
227 MonoException
*abort_exc
;
228 MonoObject
*abort_state
;
232 gpointer
*static_data
;
238 MonoObject
*start_obj
;
239 GSList
*appdomain_refs
;
240 MonoBoolean interruption_requested
;
241 gpointer suspend_event
;
242 gpointer resume_event
;
243 MonoObject
*synch_lock
;
244 guint8
* serialized_culture_info
;
245 guint32 serialized_culture_info_len
;
246 guint8
* serialized_ui_culture_info
;
247 guint32 serialized_ui_culture_info_len
;
252 MonoReflectionType
*type
;
254 } MonoSerializationEntry
;
258 MonoObject
*additional
;
259 } MonoStreamingContext
;
263 MonoBoolean readOnly
;
264 MonoString
*AMDesignator
;
265 MonoString
*PMDesignator
;
266 MonoString
*DateSeparator
;
267 MonoString
*TimeSeparator
;
268 MonoString
*ShortDatePattern
;
269 MonoString
*LongDatePattern
;
270 MonoString
*ShortTimePattern
;
271 MonoString
*LongTimePattern
;
272 MonoString
*MonthDayPattern
;
273 MonoString
*YearMonthPattern
;
274 MonoString
*FullDateTimePattern
;
275 MonoString
*RFC1123Pattern
;
276 MonoString
*SortableDateTimePattern
;
277 MonoString
*UniversalSortableDateTimePattern
;
278 guint32 FirstDayOfWeek
;
279 MonoObject
*Calendar
;
280 guint32 CalendarWeekRule
;
281 MonoArray
*AbbreviatedDayNames
;
283 MonoArray
*MonthNames
;
284 MonoArray
*AbbreviatedMonthNames
;
285 MonoArray
*ShortDatePatterns
;
286 MonoArray
*LongDatePatterns
;
287 MonoArray
*ShortTimePatterns
;
288 MonoArray
*LongTimePatterns
;
289 } MonoDateTimeFormatInfo
;
294 MonoBoolean readOnly
;
295 MonoString
*decimalFormats
;
296 MonoString
*currencyFormats
;
297 MonoString
*percentFormats
;
298 MonoString
*digitPattern
;
299 MonoString
*zeroPattern
;
300 gint32 currencyDecimalDigits
;
301 MonoString
*currencyDecimalSeparator
;
302 MonoString
*currencyGroupSeparator
;
303 MonoArray
*currencyGroupSizes
;
304 gint32 currencyNegativePattern
;
305 gint32 currencyPositivePattern
;
306 MonoString
*currencySymbol
;
307 MonoString
*naNSymbol
;
308 MonoString
*negativeInfinitySymbol
;
309 MonoString
*negativeSign
;
310 guint32 numberDecimalDigits
;
311 MonoString
*numberDecimalSeparator
;
312 MonoString
*numberGroupSeparator
;
313 MonoArray
*numberGroupSizes
;
314 gint32 numberNegativePattern
;
315 gint32 percentDecimalDigits
;
316 MonoString
*percentDecimalSeparator
;
317 MonoString
*percentGroupSeparator
;
318 MonoArray
*percentGroupSizes
;
319 gint32 percentNegativePattern
;
320 gint32 percentPositivePattern
;
321 MonoString
*percentSymbol
;
322 MonoString
*perMilleSymbol
;
323 MonoString
*positiveInfinitySymbol
;
324 MonoString
*positiveSign
;
325 } MonoNumberFormatInfo
;
330 MonoString
*icu_name
;
331 gpointer ICU_collator
;
336 MonoBoolean is_read_only
;
339 gint32 specific_lcid
;
340 gint32 datetime_index
;
342 MonoBoolean use_user_override
;
343 MonoNumberFormatInfo
*number_format
;
344 MonoDateTimeFormatInfo
*datetime_format
;
345 MonoObject
*textinfo
;
347 MonoString
*displayname
;
348 MonoString
*englishname
;
349 MonoString
*nativename
;
350 MonoString
*iso3lang
;
351 MonoString
*iso2lang
;
352 MonoString
*icu_name
;
353 MonoString
*win3lang
;
354 MonoCompareInfo
*compareinfo
;
355 const gint32
*calendar_data
;
356 const void* text_info_data
;
367 /* used to free a dynamic method */
368 typedef void (*MonoFreeMethodFunc
) (MonoDomain
*domain
, MonoMethod
*method
);
370 /* remoting and async support */
373 mono_async_result_new (MonoDomain
*domain
, HANDLE handle
,
374 MonoObject
*state
, gpointer data
);
377 mono_wait_handle_new (MonoDomain
*domain
, HANDLE handle
);
380 mono_message_init (MonoDomain
*domain
, MonoMethodMessage
*this_obj
,
381 MonoReflectionMethod
*method
, MonoArray
*out_args
);
384 mono_remoting_invoke (MonoObject
*real_proxy
, MonoMethodMessage
*msg
,
385 MonoObject
**exc
, MonoArray
**out_args
);
388 mono_message_invoke (MonoObject
*target
, MonoMethodMessage
*msg
,
389 MonoObject
**exc
, MonoArray
**out_args
);
392 mono_method_call_message_new (MonoMethod
*method
, gpointer
*params
, MonoMethod
*invoke
,
393 MonoDelegate
**cb
, MonoObject
**state
);
396 mono_method_return_message_restore (MonoMethod
*method
, gpointer
*params
, MonoArray
*out_args
);
399 mono_delegate_ctor (MonoObject
*this_obj
, MonoObject
*target
, gpointer addr
);
402 mono_runtime_free_method (MonoDomain
*domain
, MonoMethod
*method
);
404 /* runtime initialization functions */
405 typedef void (*MonoExceptionFunc
) (MonoException
*ex
);
408 mono_install_handler (MonoExceptionFunc func
);
411 mono_install_runtime_invoke (MonoInvokeFunc func
);
414 mono_install_compile_method (MonoCompileFunc func
);
417 mono_install_free_method (MonoFreeMethodFunc func
);
420 mono_type_initialization_init (void);
423 mono_thread_get_tls_key (void);
426 mono_domain_get_tls_key (void);
428 /* Reflection and Reflection.Emit support */
431 * The following structure must match the C# implementation in our corlib.
434 struct _MonoReflectionMethod
{
438 MonoReflectionType
*reftype
;
441 typedef struct _MonoReflectionGenericMethod MonoReflectionGenericMethod
;
442 struct _MonoReflectionGenericMethod
{
443 MonoReflectionMethod method
;
446 struct _MonoDelegate
{
448 MonoObject
*target_type
;
450 MonoString
*method_name
;
452 gpointer delegate_trampoline
;
453 MonoReflectionMethod
*method_info
;
456 typedef struct _MonoMulticastDelegate MonoMulticastDelegate
;
457 struct _MonoMulticastDelegate
{
458 MonoDelegate delegate
;
459 MonoMulticastDelegate
*prev
;
462 struct _MonoReflectionField
{
465 MonoClassField
*field
;
467 MonoReflectionType
*type
;
471 struct _MonoReflectionProperty
{
474 MonoProperty
*property
;
477 struct _MonoReflectionEvent
{
485 MonoReflectionType
*ClassImpl
;
486 MonoObject
*DefaultValueImpl
;
487 MonoObject
*MemberImpl
;
488 MonoString
*NameImpl
;
491 MonoObject
*MarshalAsImpl
;
492 } MonoReflectionParameter
;
494 struct _MonoReflectionMethodBody
{
499 MonoBoolean init_locals
;
500 guint32 local_var_sig_token
;
504 struct _MonoReflectionAssembly
{
506 MonoAssembly
*assembly
;
507 MonoObject
*resolve_event_holder
;
509 MonoObject
*evidence
; /* Evidence */
510 MonoObject
*minimum
; /* PermissionSet - for SecurityAction.RequestMinimum */
511 MonoObject
*optional
; /* PermissionSet - for SecurityAction.RequestOptional */
512 MonoObject
*refuse
; /* PermissionSet - for SecurityAction.RequestRefuse */
513 MonoObject
*granted
; /* PermissionSet - for the resolved assembly granted permissions */
514 MonoObject
*denied
; /* PermissionSet - for the resolved assembly denied permissions */
518 MonoReflectionType
*utype
;
524 MonoReflectionType
*parent
;
525 MonoReflectionType
*ret
;
532 MonoReflectionType
*parent
;
534 MonoReflectionMethod
*get
;
535 MonoReflectionMethod
*set
;
540 MonoReflectionType
*declaring_type
;
541 MonoReflectionType
*reflected_type
;
543 MonoReflectionMethod
*add_method
;
544 MonoReflectionMethod
*remove_method
;
545 MonoReflectionMethod
*raise_method
;
547 MonoArray
*other_methods
;
552 MonoString
*name_space
;
553 MonoReflectionType
*etype
;
554 MonoReflectionType
*nested_in
;
555 MonoReflectionAssembly
*assembly
;
557 MonoBoolean isprimitive
;
563 } MonoReflectionILTokenInfo
;
572 MonoArray
*ex_handlers
;
573 gint32 num_token_fixups
;
574 MonoArray
*token_fixups
;
575 } MonoReflectionILGen
;
582 } MonoILExceptionInfo
;
585 MonoReflectionType
*extype
;
589 gint32 filter_offset
;
590 } MonoILExceptionBlock
;
594 MonoReflectionType
*catch_type
;
595 gint32 filter_offset
;
599 gint32 handler_offset
;
600 gint32 handler_length
;
601 } MonoReflectionExceptionHandlingClause
;
605 MonoReflectionType
*local_type
;
606 MonoBoolean is_pinned
;
608 } MonoReflectionLocalVariableInfo
;
612 * Must have the same layout as MonoReflectionLocalVariableInfo, since
613 * LocalBuilder inherits from it under net 2.0.
616 MonoReflectionType
*type
;
617 MonoBoolean is_pinned
;
620 } MonoReflectionLocalBuilder
;
629 MonoString
*marshaltype
;
630 MonoReflectionType
*marshaltyperef
;
631 } MonoReflectionMarshal
;
638 MonoReflectionMarshal
*marshal_info
;
642 MonoObject
*def_value
;
643 } MonoReflectionParamBuilder
;
648 MonoReflectionILGen
*ilgen
;
649 MonoArray
*parameters
;
657 MonoBoolean init_locals
;
658 MonoArray
*param_modreq
;
659 MonoArray
*param_modopt
;
660 MonoArray
*permissions
;
661 } MonoReflectionCtorBuilder
;
666 MonoReflectionType
*rtype
;
667 MonoArray
*parameters
;
673 MonoReflectionILGen
*ilgen
;
677 MonoReflectionMethod
*override_method
;
679 MonoString
*dllentry
;
683 MonoBoolean init_locals
;
684 MonoGenericContainer
*generic_container
;
685 MonoArray
*generic_params
;
686 MonoArray
*return_modreq
;
687 MonoArray
*return_modopt
;
688 MonoArray
*param_modreq
;
689 MonoArray
*param_modopt
;
690 MonoArray
*permissions
;
691 } MonoReflectionMethodBuilder
;
696 MonoReflectionType
*parent
;
697 MonoReflectionType
*ret
;
698 MonoArray
*parameters
;
702 } MonoReflectionArrayMethod
;
707 MonoString
*filename
;
710 } MonoReflectionResource
;
717 } MonoReflectionWin32Resource
;
722 } MonoReflectionPermissionSet
;
725 MonoReflectionAssembly assembly
;
726 MonoDynamicAssembly
*dynamic_assembly
;
727 MonoReflectionMethod
*entry_point
;
732 MonoArray
*resources
;
733 MonoArray
*public_key
;
739 MonoBoolean delay_sign
;
741 MonoArray
*loaded_modules
;
742 MonoArray
*win32_resources
;
744 MonoArray
*permissions_minimum
;
745 MonoArray
*permissions_optional
;
746 MonoArray
*permissions_refused
;
749 MonoBoolean corlib_internal
;
750 } MonoReflectionAssemblyBuilder
;
755 MonoReflectionType
*type
;
757 MonoObject
*def_value
;
760 MonoReflectionType
*typeb
;
763 MonoReflectionMarshal
*marshal_info
;
764 MonoClassField
*handle
;
767 } MonoReflectionFieldBuilder
;
773 MonoReflectionType
*type
;
774 MonoArray
*parameters
;
776 MonoObject
*def_value
;
777 MonoReflectionMethodBuilder
*set_method
;
778 MonoReflectionMethodBuilder
*get_method
;
780 } MonoReflectionPropertyBuilder
;
782 struct _MonoReflectionModule
{
785 MonoReflectionAssembly
*assembly
;
788 MonoString
*scopename
;
789 MonoBoolean is_resource
;
794 MonoReflectionModule module
;
795 MonoDynamicImage
*dynamic_image
;
801 MonoReflectionAssemblyBuilder
*assemblyb
;
802 MonoArray
*global_methods
;
803 MonoArray
*global_fields
;
805 MonoArray
*resources
;
806 } MonoReflectionModuleBuilder
;
809 MonoReflectionType type
;
812 MonoReflectionType
*parent
;
813 MonoReflectionType
*nesting_type
;
814 MonoArray
*interfaces
;
818 MonoArray
*properties
;
826 MonoReflectionModuleBuilder
*module
;
829 MonoGenericContainer
*generic_container
;
830 MonoArray
*generic_params
;
831 MonoArray
*permissions
;
832 MonoReflectionType
*created
;
833 } MonoReflectionTypeBuilder
;
836 MonoReflectionType type
;
837 MonoReflectionTypeBuilder
*tbuilder
;
838 MonoReflectionMethodBuilder
*mbuilder
;
841 MonoReflectionType
*base_type
;
842 MonoArray
*iface_constraints
;
844 } MonoReflectionGenericParam
;
846 typedef struct _MonoReflectionGenericClass MonoReflectionGenericClass
;
847 struct _MonoReflectionGenericClass
{
848 MonoReflectionType type
;
849 MonoReflectionType
*generic_type
;
856 MonoString
*codebase
;
857 gint32 major
, minor
, build
, revision
;
858 /* FIXME: add missing stuff */
859 /* CultureInfo cultureinfo;
860 AssemblyNameFlags flags;
861 AssemblyHashAlgorithm hashalg;
862 StrongNameKeyPair keypair;
863 AssemblyVersionCompatibility versioncompat;*/
864 MonoObject
*cultureInfo
;
868 MonoArray
*publicKey
;
870 MonoObject
*versioncompat
;
871 } MonoReflectionAssemblyName
;
876 MonoReflectionType
*type
;
877 MonoReflectionTypeBuilder
*typeb
;
879 MonoReflectionMethodBuilder
*add_method
;
880 MonoReflectionMethodBuilder
*remove_method
;
881 MonoReflectionMethodBuilder
*raise_method
;
882 MonoArray
*other_methods
;
885 } MonoReflectionEventBuilder
;
889 MonoReflectionMethod
*ctor
;
891 } MonoReflectionCustomAttr
;
898 MonoString
*entry_point
;
899 MonoBoolean exact_spelling
;
900 MonoBoolean preserve_sig
;
901 MonoBoolean set_last_error
;
902 MonoBoolean best_fit_mapping
;
903 MonoBoolean throw_on_unmappable
;
904 } MonoReflectionDllImportAttribute
;
910 MonoReflectionType
*rtype
;
911 MonoArray
*parameters
;
914 MonoReflectionModule
*module
;
915 MonoBoolean skip_visibility
;
916 MonoBoolean init_locals
;
917 MonoReflectionILGen
*ilgen
;
920 } MonoReflectionDynamicMethod
;
924 MonoReflectionModuleBuilder
*module
;
925 MonoArray
*arguments
;
927 MonoReflectionType
*return_type
;
929 guint32 unmanaged_call_conv
;
930 } MonoReflectionSigHelper
;
933 RESOURCE_LOCATION_EMBEDDED
= 1,
934 RESOURCE_LOCATION_ANOTHER_ASSEMBLY
= 2,
935 RESOURCE_LOCATION_IN_MANIFEST
= 4
940 MonoReflectionAssembly
*assembly
;
941 MonoString
*filename
;
943 } MonoManifestResourceInfo
;
945 /* Keep in sync with System.GenericParameterAttributes */
947 GENERIC_PARAMETER_ATTRIBUTE_NON_VARIANT
= 0,
948 GENERIC_PARAMETER_ATTRIBUTE_COVARIANT
= 1,
949 GENERIC_PARAMETER_ATTRIBUTE_CONTRAVARIANT
= 2,
950 GENERIC_PARAMETER_ATTRIBUTE_VARIANCE_MASK
= 3,
952 GENERIC_PARAMETER_ATTRIBUTE_NO_SPECIAL_CONSTRAINT
= 0,
953 GENERIC_PARAMETER_ATTRIBUTE_REFERENCE_TYPE_CONSTRAINT
= 4,
954 GENERIC_PARAMETER_ATTRIBUTE_VALUE_TYPE_CONSTRAINT
= 8,
955 GENERIC_PARAMETER_ATTRIBUTE_CONSTRUCTOR_CONSTRAINT
= 16,
956 GENERIC_PARAMETER_ATTRIBUTE_SPECIAL_CONSTRAINTS_MASK
= 28
957 } GenericParameterAttributes
;
959 void mono_image_create_pefile (MonoReflectionModuleBuilder
*module
, HANDLE file
);
960 void mono_image_basic_init (MonoReflectionAssemblyBuilder
*assembly
);
961 MonoReflectionModule
* mono_image_load_module (MonoReflectionAssemblyBuilder
*assembly
, MonoString
*file_name
);
962 guint32
mono_image_insert_string (MonoReflectionModuleBuilder
*module
, MonoString
*str
);
963 guint32
mono_image_create_token (MonoDynamicImage
*assembly
, MonoObject
*obj
, gboolean create_methodspec
);
964 guint32
mono_image_create_method_token (MonoDynamicImage
*assembly
, MonoObject
*obj
, MonoArray
*opt_param_types
);
965 void mono_image_module_basic_init (MonoReflectionModuleBuilder
*module
);
967 void mono_reflection_setup_internal_class (MonoReflectionTypeBuilder
*tb
);
969 void mono_reflection_create_internal_class (MonoReflectionTypeBuilder
*tb
);
971 void mono_reflection_setup_generic_class (MonoReflectionTypeBuilder
*tb
);
973 void mono_reflection_create_generic_class (MonoReflectionTypeBuilder
*tb
);
975 MonoReflectionType
* mono_reflection_create_runtime_class (MonoReflectionTypeBuilder
*tb
);
977 void mono_reflection_create_dynamic_method (MonoReflectionDynamicMethod
*m
);
979 void mono_reflection_initialize_generic_parameter (MonoReflectionGenericParam
*gparam
);
982 mono_reflection_bind_generic_parameters (MonoReflectionType
*type
, int type_argc
, MonoType
**types
);
983 MonoReflectionMethod
*
984 mono_reflection_bind_generic_method_parameters (MonoReflectionMethod
*method
, MonoArray
*types
);
986 mono_reflection_generic_class_initialize (MonoReflectionGenericClass
*type
, MonoArray
*methods
, MonoArray
*ctors
, MonoArray
*fields
, MonoArray
*properties
, MonoArray
*events
);
987 MonoReflectionEvent
*
988 mono_reflection_event_builder_get_event_info (MonoReflectionTypeBuilder
*tb
, MonoReflectionEventBuilder
*eb
);
990 MonoArray
*mono_reflection_sighelper_get_signature_local (MonoReflectionSigHelper
*sig
);
992 MonoArray
*mono_reflection_sighelper_get_signature_field (MonoReflectionSigHelper
*sig
);
994 MonoReflectionMarshal
* mono_reflection_marshal_from_marshal_spec (MonoDomain
*domain
, MonoClass
*klass
, MonoMarshalSpec
*spec
);
997 mono_reflection_lookup_dynamic_token (MonoImage
*image
, guint32 token
);
1000 mono_image_build_metadata (MonoReflectionModuleBuilder
*module
);
1003 mono_get_constant_value_from_blob (MonoDomain
* domain
, MonoTypeEnum type
, const char *blob
, void *value
);
1006 mono_release_type_locks (MonoThread
*thread
);
1009 mono_array_clone_in_domain (MonoDomain
*domain
, MonoArray
*array
);
1012 mono_array_full_copy (MonoArray
*src
, MonoArray
*dest
);
1015 mono_remote_class_vtable (MonoDomain
*domain
, MonoRemoteClass
*remote_class
, MonoRealProxy
*real_proxy
);
1017 MonoMethodSignature
*
1018 mono_method_get_signature_full (MonoMethod
*method
, MonoImage
*image
, guint32 token
, MonoGenericContext
*context
);
1020 #endif /* __MONO_OBJECT_INTERNALS_H__ */