Skip to content

Commit 96082e3

Browse files
authored
Fix some function pointer types to match, i.e. so C++ compiles w/o extra casts. (mono#6732)
1 parent ed4331a commit 96082e3

File tree

5 files changed

+10
-5
lines changed

5 files changed

+10
-5
lines changed

mono/metadata/boehm-gc.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -1483,7 +1483,7 @@ void mono_gc_set_skip_thread (gboolean value)
14831483
}
14841484

14851485
void
1486-
mono_gc_register_for_finalization (MonoObject *obj, void *user_data)
1486+
mono_gc_register_for_finalization (MonoObject *obj, MonoFinalizationProc user_data)
14871487
{
14881488
guint offset = 0;
14891489

mono/metadata/gc-internals.h

+3-1
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,9 @@ MonoGCDescriptor mono_gc_make_descr_for_string (gsize *bitmap, int numbits);
140140

141141
void mono_gc_register_obj_with_weak_fields (void *obj);
142142

143-
void mono_gc_register_for_finalization (MonoObject *obj, void *user_data);
143+
typedef void (*MonoFinalizationProc)(gpointer, gpointer); // same as SGenFinalizationProc, GC_finalization_proc
144+
145+
void mono_gc_register_for_finalization (MonoObject *obj, MonoFinalizationProc user_data);
144146
void mono_gc_add_memory_pressure (gint64 value);
145147
MONO_API int mono_gc_register_root (char *start, size_t size, MonoGCDescriptor descr, MonoGCRootSource source, void *key, const char *msg);
146148
void mono_gc_deregister_root (char* addr);

mono/metadata/sgen-mono.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -545,7 +545,7 @@ sgen_client_finalize_notify (void)
545545
}
546546

547547
void
548-
mono_gc_register_for_finalization (MonoObject *obj, void *user_data)
548+
mono_gc_register_for_finalization (MonoObject *obj, MonoFinalizationProc user_data)
549549
{
550550
sgen_object_register_for_finalization (obj, user_data);
551551
}

mono/sgen/sgen-fin-weak-hash.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -548,7 +548,7 @@ sgen_process_fin_stage_entries (void)
548548
}
549549

550550
void
551-
sgen_object_register_for_finalization (GCObject *obj, void *user_data)
551+
sgen_object_register_for_finalization (GCObject *obj, SGenFinalizationProc user_data)
552552
{
553553
while (add_stage_entry (NUM_FIN_STAGE_ENTRIES, &next_fin_stage_entry, fin_stage_entries, obj, user_data) == -1) {
554554
if (try_lock_stage_for_processing (NUM_FIN_STAGE_ENTRIES, &next_fin_stage_entry)) {

mono/sgen/sgen-gc.h

+4-1
Original file line numberDiff line numberDiff line change
@@ -827,7 +827,10 @@ void sgen_null_link_in_range (int generation, ScanCopyContext ctx, gboolean trac
827827
void sgen_process_fin_stage_entries (void)
828828
MONO_PERMIT (need (sgen_gc_locked));
829829
gboolean sgen_have_pending_finalizers (void);
830-
void sgen_object_register_for_finalization (GCObject *obj, void *user_data)
830+
831+
typedef void (*SGenFinalizationProc)(gpointer, gpointer); // same as MonoFinalizationProc, GC_finalization_proc
832+
833+
void sgen_object_register_for_finalization (GCObject *obj, SGenFinalizationProc user_data)
831834
MONO_PERMIT (need (sgen_lock_gc));
832835

833836
void sgen_finalize_if (SgenObjectPredicateFunc predicate, void *user_data)

0 commit comments

Comments
 (0)