40
40
41
41
#if HAVE_BOEHM_GC
42
42
43
+ #if !HAVE_BDWGC_GC
44
+ #define GC_dirty (x )
45
+ #endif
46
+
43
47
#undef TRUE
44
48
#undef FALSE
45
49
#define THREAD_LOCAL_ALLOC 1
@@ -643,7 +647,7 @@ mono_gc_weak_link_add (void **link_addr, MonoObject *obj, gboolean track)
643
647
{
644
648
/* libgc requires that we use HIDE_POINTER... */
645
649
* link_addr = (void * )HIDE_POINTER (obj );
646
- GC_end_stubborn_change (link_addr );
650
+ GC_dirty (link_addr );
647
651
if (track )
648
652
GC_REGISTER_LONG_LINK (link_addr , obj );
649
653
else
@@ -888,48 +892,48 @@ void
888
892
mono_gc_wbarrier_set_field (MonoObject * obj , gpointer field_ptr , MonoObject * value )
889
893
{
890
894
* (void * * )field_ptr = value ;
891
- GC_end_stubborn_change (field_ptr );
895
+ GC_dirty (field_ptr );
892
896
}
893
897
894
898
void
895
899
mono_gc_wbarrier_set_arrayref (MonoArray * arr , gpointer slot_ptr , MonoObject * value )
896
900
{
897
901
* (void * * )slot_ptr = value ;
898
- GC_end_stubborn_change (slot_ptr );
902
+ GC_dirty (slot_ptr );
899
903
}
900
904
901
905
void
902
906
mono_gc_wbarrier_arrayref_copy (gpointer dest_ptr , gpointer src_ptr , int count )
903
907
{
904
908
mono_gc_memmove_aligned (dest_ptr , src_ptr , count * sizeof (gpointer ));
905
- GC_end_stubborn_change (dest_ptr );
909
+ GC_dirty (dest_ptr );
906
910
}
907
911
908
912
void
909
913
mono_gc_wbarrier_generic_store (gpointer ptr , MonoObject * value )
910
914
{
911
915
* (void * * )ptr = value ;
912
- GC_end_stubborn_change (ptr );
916
+ GC_dirty (ptr );
913
917
}
914
918
915
919
void
916
920
mono_gc_wbarrier_generic_store_atomic (gpointer ptr , MonoObject * value )
917
921
{
918
922
mono_atomic_store_ptr ((volatile gpointer * )ptr , value );
919
- GC_end_stubborn_change (ptr );
923
+ GC_dirty (ptr );
920
924
}
921
925
922
926
void
923
927
mono_gc_wbarrier_generic_nostore (gpointer ptr )
924
928
{
925
- GC_end_stubborn_change (ptr );
929
+ GC_dirty (ptr );
926
930
}
927
931
928
932
void
929
933
mono_gc_wbarrier_value_copy (gpointer dest , gpointer src , int count , MonoClass * klass )
930
934
{
931
935
mono_gc_memmove_atomic (dest , src , count * mono_class_value_size (klass , NULL ));
932
- GC_end_stubborn_change (dest );
936
+ GC_dirty (dest );
933
937
}
934
938
935
939
void
@@ -938,7 +942,7 @@ mono_gc_wbarrier_object_copy (MonoObject* obj, MonoObject *src)
938
942
/* do not copy the sync state */
939
943
mono_gc_memmove_aligned ((char * )obj + sizeof (MonoObject ), (char * )src + sizeof (MonoObject ),
940
944
mono_object_class (obj )-> instance_size - sizeof (MonoObject ));
941
- GC_end_stubborn_change (obj );
945
+ GC_dirty (obj );
942
946
}
943
947
944
948
void
@@ -1510,7 +1514,7 @@ void
1510
1514
mono_gc_wbarrier_range_copy (gpointer _dest , gpointer _src , int size )
1511
1515
{
1512
1516
memcpy (_dest , _src , size );
1513
- GC_end_stubborn_change (_dest );
1517
+ GC_dirty (_dest );
1514
1518
}
1515
1519
1516
1520
void *
@@ -1871,7 +1875,7 @@ handle_data_grow (HandleData *handles, gboolean track)
1871
1875
gpointer * entries ;
1872
1876
entries = (void * * )mono_gc_alloc_fixed (sizeof (* handles -> entries ) * new_size , NULL , MONO_ROOT_SOURCE_GC_HANDLE , NULL , "GC Handle Table (Boehm)" );
1873
1877
mono_gc_memmove_aligned (entries , handles -> entries , sizeof (* handles -> entries ) * handles -> size );
1874
- GC_end_stubborn_change (entries );
1878
+ GC_dirty (entries );
1875
1879
mono_gc_free_fixed (handles -> entries );
1876
1880
handles -> entries = entries ;
1877
1881
}
@@ -1904,7 +1908,7 @@ alloc_handle (HandleData *handles, MonoObject *obj, gboolean track)
1904
1908
mono_gc_weak_link_add (& (handles -> entries [slot ]), obj , track );
1905
1909
} else {
1906
1910
handles -> entries [slot ] = obj ;
1907
- GC_end_stubborn_change (handles -> entries + slot );
1911
+ GC_dirty (handles -> entries + slot );
1908
1912
}
1909
1913
1910
1914
#ifndef DISABLE_PERFCOUNTERS
@@ -2022,7 +2026,7 @@ mono_gchandle_set_target (guint32 gchandle, MonoObject *obj)
2022
2026
handles -> domain_ids [slot ] = (obj ? mono_object_get_domain (obj ) : mono_domain_get ())-> domain_id ;
2023
2027
} else {
2024
2028
handles -> entries [slot ] = obj ;
2025
- GC_end_stubborn_change (handles -> entries + slot );
2029
+ GC_dirty (handles -> entries + slot );
2026
2030
}
2027
2031
} else {
2028
2032
/* print a warning? */
@@ -2101,7 +2105,7 @@ mono_gchandle_free (guint32 gchandle)
2101
2105
mono_gc_weak_link_remove (& handles -> entries [slot ], handles -> type == HANDLE_WEAK_TRACK );
2102
2106
} else {
2103
2107
handles -> entries [slot ] = NULL ;
2104
- GC_end_stubborn_change (handles -> entries + slot );
2108
+ GC_dirty (handles -> entries + slot );
2105
2109
}
2106
2110
vacate_slot (handles , slot );
2107
2111
} else {
@@ -2144,7 +2148,7 @@ mono_gchandle_free_domain (MonoDomain *domain)
2144
2148
if (handles -> entries [slot ] && mono_object_domain (handles -> entries [slot ]) == domain ) {
2145
2149
vacate_slot (handles , slot );
2146
2150
handles -> entries [slot ] = NULL ;
2147
- GC_end_stubborn_change (handles -> entries + slot );
2151
+ GC_dirty (handles -> entries + slot );
2148
2152
}
2149
2153
}
2150
2154
}
0 commit comments