[handle] Add _SETREF_NULL macros for MonoObjectHandle and MonoArrayHandle
authorAleksey Kliger <aleksey@xamarin.com>
Thu, 7 Jan 2016 23:21:15 +0000 (18:21 -0500)
committerAleksey Kliger <aleksey@xamarin.com>
Thu, 14 Jan 2016 16:38:14 +0000 (11:38 -0500)
mono/metadata/handle.h

index 07d1054c290debc33028ec81a6a44183913f3ded..01c06556ad1960630239905a01eb8f2b1150f33d 100644 (file)
@@ -145,6 +145,14 @@ mono_handle_domain (MonoHandle handle)
                MONO_FINISH_GC_CRITICAL_REGION;                                 \
        } while (0)
 
+#define MONO_HANDLE_SETREF_NULL(handle,fieldname)                      \
+       do {                                                            \
+               MONO_PREPARE_GC_CRITICAL_REGION;                        \
+               MONO_OBJECT_SETREF (mono_handle_obj ((handle)), fieldname, NULL); \
+               MONO_FINISH_GC_CRITICAL_REGION;                         \
+       } while (0)
+
+
 #define MONO_HANDLE_SET(handle,fieldname,value)        \
        do {    \
                MONO_PREPARE_GC_CRITICAL_REGION;        \
@@ -160,6 +168,14 @@ mono_handle_domain (MonoHandle handle)
                MONO_FINISH_GC_CRITICAL_REGION;                                 \
        } while (0)
 
+#define MONO_HANDLE_ARRAY_SETREF_NULL(handle,index)                    \
+       do {                                                            \
+               MONO_PREPARE_GC_CRITICAL_REGION;                        \
+               mono_array_setref (mono_handle_obj ((handle)), (index), NULL); \
+               MONO_FINISH_GC_CRITICAL_REGION;                         \
+       } while (0)
+       
+
 #define MONO_HANDLE_ARRAY_SET(handle,type,index,value) \
        do {    \
                MONO_PREPARE_GC_CRITICAL_REGION;        \