void
ves_icall_System_AppDomain_InternalPopDomainRef (MonoError *error);
-MonoAppContext *
-ves_icall_System_AppDomain_InternalGetContext (void);
+MonoAppContextHandle
+ves_icall_System_AppDomain_InternalGetContext (MonoError *error);
-MonoAppContext *
-ves_icall_System_AppDomain_InternalGetDefaultContext (void);
+MonoAppContextHandle
+ves_icall_System_AppDomain_InternalGetDefaultContext (MonoError *error);
-MonoAppContext *
-ves_icall_System_AppDomain_InternalSetContext (MonoAppContext *mc);
+MonoAppContextHandle
+ves_icall_System_AppDomain_InternalSetContext (MonoAppContextHandle mc, MonoError *error);
gint32
ves_icall_System_AppDomain_GetIDFromDomain (MonoAppDomain * ad);
mono_thread_pop_appdomain_ref ();
}
-MonoAppContext *
-ves_icall_System_AppDomain_InternalGetContext ()
+MonoAppContextHandle
+ves_icall_System_AppDomain_InternalGetContext (MonoError *error)
{
- return mono_context_get ();
+ error_init (error);
+ return mono_context_get_handle ();
}
-MonoAppContext *
-ves_icall_System_AppDomain_InternalGetDefaultContext ()
+MonoAppContextHandle
+ves_icall_System_AppDomain_InternalGetDefaultContext (MonoError *error)
{
- return mono_domain_get ()->default_context;
+ error_init (error);
+ return MONO_HANDLE_NEW (MonoAppContext, mono_domain_get ()->default_context);
}
-MonoAppContext *
-ves_icall_System_AppDomain_InternalSetContext (MonoAppContext *mc)
+MonoAppContextHandle
+ves_icall_System_AppDomain_InternalSetContext (MonoAppContextHandle mc, MonoError *error)
{
- MonoAppContext *old_context = mono_context_get ();
+ error_init (error);
+ MonoAppContextHandle old_context = mono_context_get_handle ();
- mono_context_set (mc);
+ mono_context_set_handle (mc);
return old_context;
}
SET_APPCONTEXT (new_context);
}
+void
+mono_context_set_handle (MonoAppContextHandle new_context)
+{
+ SET_APPCONTEXT (MONO_HANDLE_RAW (new_context));
+}
+
/**
* mono_context_get:
*
return GET_APPCONTEXT ();
}
+/**
+ * mono_context_get_handle:
+ *
+ * Returns: the current Mono Application Context.
+ */
+MonoAppContextHandle
+mono_context_get_handle (void)
+{
+ return MONO_HANDLE_NEW (MonoAppContext, GET_APPCONTEXT ());
+}
+
/**
* mono_context_get_id:
* \param context the context to operate on.
TYPED_HANDLE_DECL (MonoArray);
TYPED_HANDLE_DECL (MonoObject);
TYPED_HANDLE_DECL (MonoException);
+TYPED_HANDLE_DECL (MonoAppContext);
#define NULL_HANDLE_STRING MONO_HANDLE_CAST(MonoString, NULL_HANDLE)
void
mono_error_set_exception_handle (MonoError *error, MonoExceptionHandle exc);
+MonoAppContextHandle
+mono_context_get_handle (void);
+
+void
+mono_context_set_handle (MonoAppContextHandle new_context);
+
+
G_END_DECLS
#endif /* __MONO_HANDLE_H__ */
HANDLES(ICALL(APPDOM_1, "ExecuteAssembly", ves_icall_System_AppDomain_ExecuteAssembly))
HANDLES(ICALL(APPDOM_2, "GetAssemblies", ves_icall_System_AppDomain_GetAssemblies))
HANDLES(ICALL(APPDOM_3, "GetData", ves_icall_System_AppDomain_GetData))
-ICALL(APPDOM_4, "InternalGetContext", ves_icall_System_AppDomain_InternalGetContext)
-ICALL(APPDOM_5, "InternalGetDefaultContext", ves_icall_System_AppDomain_InternalGetDefaultContext)
+HANDLES(ICALL(APPDOM_4, "InternalGetContext", ves_icall_System_AppDomain_InternalGetContext))
+HANDLES(ICALL(APPDOM_5, "InternalGetDefaultContext", ves_icall_System_AppDomain_InternalGetDefaultContext))
HANDLES(ICALL(APPDOM_6, "InternalGetProcessGuid", ves_icall_System_AppDomain_InternalGetProcessGuid))
HANDLES(ICALL(APPDOM_7, "InternalIsFinalizingForUnload", ves_icall_System_AppDomain_InternalIsFinalizingForUnload))
HANDLES(ICALL(APPDOM_8, "InternalPopDomainRef", ves_icall_System_AppDomain_InternalPopDomainRef))
HANDLES(ICALL(APPDOM_9, "InternalPushDomainRef", ves_icall_System_AppDomain_InternalPushDomainRef))
HANDLES(ICALL(APPDOM_10, "InternalPushDomainRefByID", ves_icall_System_AppDomain_InternalPushDomainRefByID))
-ICALL(APPDOM_11, "InternalSetContext", ves_icall_System_AppDomain_InternalSetContext)
+HANDLES(ICALL(APPDOM_11, "InternalSetContext", ves_icall_System_AppDomain_InternalSetContext))
HANDLES(ICALL(APPDOM_12, "InternalSetDomain", ves_icall_System_AppDomain_InternalSetDomain))
HANDLES(ICALL(APPDOM_13, "InternalSetDomainByID", ves_icall_System_AppDomain_InternalSetDomainByID))
HANDLES(ICALL(APPDOM_14, "InternalUnload", ves_icall_System_AppDomain_InternalUnload))