+#define mono_array_setref(array,index,value) \
+ do { \
+ gpointer *__p = (gpointer *) mono_array_addr ((array), gpointer, (index)); \
+ mono_gc_wbarrier_set_arrayref ((array), __p, (MonoObject*)(value)); \
+ /* *__p = (value);*/ \
+ } while (0)
+#define mono_array_memcpy_refs(dest,destidx,src,srcidx,count) \
+ do { \
+ gpointer *__p = (gpointer *) mono_array_addr ((dest), gpointer, (destidx)); \
+ mono_gc_wbarrier_arrayref_copy ((dest), __p, (count)); \
+ memmove (__p, mono_array_addr ((src), gpointer, (srcidx)), (count) * sizeof (gpointer)); \
+ } while (0)