Change pointer arguments of push_all[_eager]/conditional API to void* type
authorJay Krell <jaykrell@microsoft.com>
Mon, 12 Feb 2018 21:34:21 +0000 (00:34 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Mon, 12 Feb 2018 21:34:21 +0000 (00:34 +0300)
commitb2b0d2722ce8ba4471697f7296b3efda183b2911
tree73aef1b741002e10526f0af3334fd6129dd88942
parentbc7d0756a2b1f832c26454c9b08cacb1e6ad06dc
Change pointer arguments of push_all[_eager]/conditional API to void* type

Receiving void* instead of char* is easier to use, as it requires
no casting.

A small downside of this change is that anyone using decltype(GC_push)
in C++ function signatures would get a different name mangling.

* include/gc_mark.h (GC_push_all, GC_push_all_eager,
GC_push_conditional): Change type of bottom and top arguments from
char* to void*.
* mark.c (GC_push_all, GC_push_conditional, GC_push_all_eager):
Likewise.
* include/private/gc_priv.h (GC_PUSH_ALL_SYM): Cast away volatile
qualifier for &sym.
* mark.c (GC_push_all): Remove "register" keyword for length local
variable.
* mark.c [!GC_DISABLE_INCREMENTAL] (GC_push_selected): Remove unneeded
casts for GC_push_all arguments.
* mark.c [WRAP_MARK_SOME && PARALLEL_MARK] (GC_push_conditional_eager):
Change type of bottom and top arguments from ptr_t to void*.
* mark_rts.c [WRAP_MARK_SOME && PARALLEL_MARK]
(GC_push_conditional_eager): Likewise.
* mark_rts.c (GC_PUSH_CONDITIONAL): Remove unneeded casts for
GC_push_all and GC_push_conditional arguments.
include/gc_mark.h
include/private/gc_priv.h
mark.c
mark_rts.c