From dd40906bb8fe96ca46b948e434035146fcb79eeb Mon Sep 17 00:00:00 2001 From: Aleksey Kliger Date: Thu, 12 Jan 2017 14:48:48 -0500 Subject: [PATCH] [runtime] Fix compile error in mono_domain_from_appdomain when DISABLE_REMOTING is defined mono_defaults.transparent_proxy_class is #ifdef'd out when remoting is disabled. --- mono/metadata/appdomain.c | 2 +- mono/metadata/class-internals.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mono/metadata/appdomain.c b/mono/metadata/appdomain.c index 32f6a2ed4d4..cd8df1cb063 100644 --- a/mono/metadata/appdomain.c +++ b/mono/metadata/appdomain.c @@ -1816,7 +1816,7 @@ mono_domain_from_appdomain (MonoAppDomain *appdomain) if (appdomain == NULL) return NULL; - if (appdomain->mbr.obj.vtable->klass == mono_defaults.transparent_proxy_class) { + if (mono_object_is_transparent_proxy (&appdomain->mbr.obj)) { MonoTransparentProxy *tp = (MonoTransparentProxy*)appdomain; return mono_domain_get_by_id (tp->rp->target_domain_id); } diff --git a/mono/metadata/class-internals.h b/mono/metadata/class-internals.h index 7a1456cbb76..e92756ed58a 100644 --- a/mono/metadata/class-internals.h +++ b/mono/metadata/class-internals.h @@ -1117,13 +1117,13 @@ typedef struct { #ifdef DISABLE_REMOTING #define mono_class_is_transparent_proxy(klass) (FALSE) #define mono_class_is_real_proxy(klass) (FALSE) -#define mono_object_is_transparent_proxy(object) (FALSE) #else #define mono_class_is_transparent_proxy(klass) ((klass) == mono_defaults.transparent_proxy_class) #define mono_class_is_real_proxy(klass) ((klass) == mono_defaults.real_proxy_class) -#define mono_object_is_transparent_proxy(object) (((MonoObject*)object)->vtable->klass == mono_defaults.transparent_proxy_class) #endif +#define mono_object_is_transparent_proxy(object) (mono_class_is_transparent_proxy (mono_object_class (object))) + #define GENERATE_GET_CLASS_WITH_CACHE_DECL(shortname) \ MonoClass* mono_class_get_##shortname##_class (void); -- 2.25.1