gboolean cas_method_permitonly:1;
gboolean has_generic_jit_info:1;
gboolean from_aot:1;
+ gboolean from_llvm:1;
+#ifdef HAVE_SGEN_GC
+ /* FIXME: Embed this after the structure later */
+ gpointer gc_info;
+#endif
MonoJitExceptionInfo clauses [MONO_ZERO_LEN_ARRAY];
/* There is an optional MonoGenericJitInfo after the clauses */
};
MonoException *out_of_memory_ex;
MonoException *null_reference_ex;
MonoException *stack_overflow_ex;
+ /* typeof (void) */
+ MonoObject *typeof_void;
+ /*
+ * The fields between FIRST_GC_TRACKED and LAST_GC_TRACKED are roots, but
+ * not object references.
+ */
#define MONO_DOMAIN_FIRST_GC_TRACKED env
MonoGHashTable *env;
MonoGHashTable *ldstr_table;
MonoGHashTable *type_init_exception_hash;
/* maps delegate trampoline addr -> delegate object */
MonoGHashTable *delegate_hash_table;
- /* typeof (void) */
- MonoObject *typeof_void;
-#define MONO_DOMAIN_LAST_GC_TRACKED typeof_void
+#define MONO_DOMAIN_LAST_GC_TRACKED delegate_hash_table
guint32 state;
/* Needed by Thread:GetDomainID() */
gint32 domain_id;
* if the hashtable contains a GC visible reference to them.
*/
GHashTable *finalizable_objects_hash;
+#ifndef HAVE_SGEN_GC
+ /* Maps MonoObjects to a GSList of WeakTrackResurrection GCHandles pointing to them */
+ GHashTable *track_resurrection_objects_hash;
+ /* Maps WeakTrackResurrection GCHandles to the MonoObjects they point to */
+ GHashTable *track_resurrection_handles_hash;
+#endif
+ /* Protects the three hashes above */
CRITICAL_SECTION finalizable_objects_hash_lock;
/* Used when accessing 'domain_assemblies' */
CRITICAL_SECTION assemblies_lock;
/* Contains the compiled runtime invoke wrapper used by finalizers */
gpointer finalize_runtime_invoke;
+
+ /* Contains the compiled runtime invoke wrapper used by async resylt creation to capture thread context*/
+ gpointer capture_context_runtime_invoke;
+
+ /* Contains the compiled method used by async resylt creation to capture thread context*/
+ gpointer capture_context_method;
};
typedef struct {
void
mono_domain_code_foreach (MonoDomain *domain, MonoCodeManagerFunc func, void *user_data) MONO_INTERNAL;
+void
+mono_domain_set_internal_with_options (MonoDomain *domain, gboolean migrate_exception) MONO_INTERNAL;
+
/*
* Installs a new function which is used to return a MonoJitInfo for a method inside
* an AOT module.
int mono_framework_version (void) MONO_INTERNAL;
+void mono_reflection_cleanup_domain (MonoDomain *domain) MONO_INTERNAL;
+
#endif /* __MONO_METADATA_DOMAIN_INTERNALS_H__ */