#ifdef __GNUC__
/* namespace and name should be a constant */
+/* image must be mscorlib since other assemblies can be unloaded */
#define mono_class_from_name_cached(image,namespace,name) ({ \
static MonoClass *tmp_klass; \
if (!tmp_klass) { \
+ g_assert (image == mono_defaults.corlib); \
tmp_klass = mono_class_from_name ((image), (namespace), (name)); \
g_assert (tmp_klass); \
}; \
MonoString *type_name;
} MonoTypeLoadException;
+typedef struct {
+ MonoException base;
+ MonoObject *wrapped_exception;
+} MonoRuntimeWrappedException;
+
typedef struct {
MonoObject object;
MonoObject *async_state;
MonoObject *async_callback;
MonoObject *execution_context;
MonoObject *original_context;
+ gint64 add_time;
} MonoAsyncResult;
typedef struct {
struct _MonoInternalThread {
MonoObject obj;
- int lock_thread_id; /* to be used as the pre-shifted thread id in thin locks */
+ volatile int lock_thread_id; /* to be used as the pre-shifted thread id in thin locks. Used for appdomain_ref push/pop */
HANDLE handle;
MonoArray *cached_culture_info;
gpointer unused1;
MonoThread *root_domain_thread;
gpointer interrupt_on_stop;
gsize flags;
+ gpointer android_tid;
/*
* These fields are used to avoid having to increment corlib versions
* when a new field is added to the unmanaged MonoThread structure.
*/
- gpointer unused4;
gpointer unused5;
gpointer unused6;
};
gpointer (*get_addr_from_ftnptr) (gpointer descr);
char* (*get_runtime_build_info) (void);
gpointer (*get_vtable_trampoline) (int slot_index);
+ gpointer (*get_imt_trampoline) (int imt_slot_index);
+ void (*set_cast_details) (MonoClass *from, MonoClass *to);
} MonoRuntimeCallbacks;
/* used to free a dynamic method */
void
mono_type_initialization_cleanup (void) MONO_INTERNAL;
+int
+mono_thread_kill (MonoInternalThread *thread, int signal) MONO_INTERNAL;
+
guint32
mono_thread_get_tls_key (void) MONO_INTERNAL;
typedef struct {
MonoReflectionType *parent;
+ MonoReflectionType *declaring_type;
MonoString *name;
MonoReflectionMethod *get;
MonoReflectionMethod *set;
MonoReflectionMethodBuilder *set_method;
MonoReflectionMethodBuilder *get_method;
gint32 table_idx;
+ MonoObject *type_builder;
+ MonoArray *returnModReq;
+ MonoArray *returnModOpt;
+ MonoArray *paramModReq;
+ MonoArray *paramModOpt;
+ guint32 call_conv;
} MonoReflectionPropertyBuilder;
struct _MonoReflectionModule {
void mono_reflection_register_with_runtime (MonoReflectionType *type) MONO_INTERNAL;
void mono_reflection_create_custom_attr_data_args (MonoImage *image, MonoMethod *method, const guchar *data, guint32 len, MonoArray **typed_args, MonoArray **named_args, CattrNamedArg **named_arg_info) MONO_INTERNAL;
+MonoMethodSignature * mono_reflection_lookup_signature (MonoImage *image, MonoMethod *method, guint32 token) MONO_INTERNAL;
MonoArray* mono_param_get_objects_internal (MonoDomain *domain, MonoMethod *method, MonoClass *refclass) MONO_INTERNAL;
gboolean
mono_reflection_is_valid_dynamic_token (MonoDynamicImage *image, guint32 token) MONO_INTERNAL;
+void
+mono_reflection_resolve_custom_attribute_data (MonoReflectionMethod *method, MonoReflectionAssembly *assembly, gpointer data, guint32 data_length, MonoArray **ctor_args, MonoArray ** named_args) MONO_INTERNAL;
+
MonoType*
mono_reflection_type_get_handle (MonoReflectionType *ref) MONO_INTERNAL;
+void
+mono_reflection_free_dynamic_generic_class (MonoGenericClass *gclass) MONO_INTERNAL;
+
void
mono_image_build_metadata (MonoReflectionModuleBuilder *module) MONO_INTERNAL;
void
mono_install_imt_thunk_builder (MonoImtThunkBuilder func) MONO_INTERNAL;
-void
-mono_install_imt_trampoline (gpointer tramp) MONO_INTERNAL;
-
void
mono_vtable_build_imt_slot (MonoVTable* vtable, int imt_slot) MONO_INTERNAL;
void
mono_class_compute_gc_descriptor (MonoClass *class) MONO_INTERNAL;
+gsize*
+mono_class_compute_bitmap (MonoClass *class, gsize *bitmap, int size, int offset, int *max_set, gboolean static_fields) MONO_INTERNAL;
+
MonoObject*
mono_object_xdomain_representation (MonoObject *obj, MonoDomain *target_domain, MonoObject **exc) MONO_INTERNAL;
-char *
-mono_string_to_utf8_checked (MonoString *s, MonoError *error) MONO_INTERNAL;
-
gboolean
mono_class_is_reflection_method_or_constructor (MonoClass *class) MONO_INTERNAL;
void
mono_class_free_ref_info (MonoClass *klass) MONO_INTERNAL;
+MonoObject *
+mono_object_new_pinned (MonoDomain *domain, MonoClass *klass) MONO_INTERNAL;
+
+void
+mono_field_static_get_value_for_thread (MonoInternalThread *thread, MonoVTable *vt, MonoClassField *field, void *value) MONO_INTERNAL;
+
+char *
+mono_string_to_utf8_ignore (MonoString *s) MONO_INTERNAL;
+
+char *
+mono_string_to_utf8_image_ignore (MonoImage *image, MonoString *s) MONO_INTERNAL;
+
+char *
+mono_string_to_utf8_mp_ignore (MonoMemPool *mp, MonoString *s) MONO_INTERNAL;
+
#endif /* __MONO_OBJECT_INTERNALS_H__ */