summaryrefslogtreecommitdiff
path: root/headers.c
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2020-07-19 10:15:42 +0300
committerIvan Maidanski <ivmai@mail.ru>2020-07-19 10:15:42 +0300
commit802e47d5e8dcbddd2e80cd4587eacc5f4ffbc745 (patch)
tree3aa4dc1de6f55f0f76812040a7059aed139ecd2e /headers.c
parent43e1d537de493e0fd5b8e1e52acbea7e872ed87a (diff)
downloadbdwgc-802e47d5e8dcbddd2e80cd4587eacc5f4ffbc745.tar.gz
Move GC state pointer variables into GC_arrays
This commit is intended to simplify GC reinitialization. GC_push_finalizer_structures() and GC_push_typed_structures() are called now regardless of GC_no_dls and GC_roots_were_cleared values. * finalize.c (dl_hashtbl_s, fnlz_roots_s): Move struct to gc_priv.h. * typd_mlc.c (typed_ext_descr_t): Likewise. * finalize.c [!GC_NO_FINALIZATION] (GC_dl_hashtbl, GC_fnlz_roots): Remove static variable. * finalize.c [!GC_NO_FINALIZATION && !GC_LONG_REFS_NOT_NEEDED] (GC_ll_hashtbl): Likewise. * finalize.c [!GC_NO_FINALIZATION && !GC_TOGGLE_REFS_NOT_NEEDED] (GC_toggleref_arr): Likewise. * gcj_mlc.c [GC_GCJ_SUPPORT] (GC_gcjobjfreelist): Likewise. * headers.c (GC_all_bottom_indices, GC_all_bottom_indices_end, GC_scratch_free_ptr, GC_hdr_free_list): Likewise. * mark.c (GC_scan_ptr): Likewise. * mark.c [PARALLEL_MARK] (GC_main_local_mark_stack): Likewise. * typd_mlc.c (GC_ext_descriptors): Likewise. * finalize.c [!GC_NO_FINALIZATION && !GC_TOGGLE_REFS_NOT_NEEDED] (GCToggleRef): Define type as an alias to union toggle_ref_u. * finalize.c [!GC_NO_FINALIZATION && !GC_TOGGLE_REFS_NOT_NEEDED] (GC_mark_togglerefs): Remove TODO item. * include/private/gc_priv.h (disappearing_link, finalizable_object): Declare struct. * include/private/gc_priv.h (GC_arrays): Add _all_bottom_indices, _all_bottom_indices_end, _scratch_free_ptr, _hdr_free_list, _scan_ptr, _ext_descriptors fields. * include/private/gc_priv.h [PARALLEL_MARK] (GC_arrays): Add _main_local_mark_stack field. * include/private/gc_priv.h [GC_GCJ_SUPPORT] (GC_arrays): Add _gcjobjfreelist field. * include/private/gc_priv.h [!GC_NO_FINALIZATION && GC_LONG_REFS_NOT_NEEDED] (GC_arrays): Add _ll_hashtbl field. * include/private/gc_priv.h [!GC_NO_FINALIZATION] (GC_arrays): Add _dl_hashtbl, _fnlz_roots fields. * include/private/gc_priv.h [!GC_NO_FINALIZATION && !GC_TOGGLE_REFS_NOT_NEEDED] (GC_arrays): Add _toggleref_arr field. * include/private/gc_priv.h (GC_arrays._roots_were_cleared): Define field only if THREADS. * mark_rts.c (GC_clear_roots): Set GC_roots_were_cleared only if THREADS. * mark_rts.c (GC_push_gc_structures): Remove static function. * mark_rts.c (GC_push_roots): Do not call GC_push_gc_structures. * mark_rts.c [!GC_NO_FINALIZATION] (GC_push_roots): Call GC_push_finalizer_structures (regardless of GC_no_dls and GC_roots_were_cleared). * mark_rts.c [THREADS] (GC_push_roots): If GC_no_dls or GC_roots_were_cleared then call GC_push_thread_structures. * mark_rts.c (GC_push_roots): If GC_push_typed_structures is non-null then call GC_push_typed_structures (regardless of GC_no_dls and GC_roots_were_cleared).
Diffstat (limited to 'headers.c')
-rw-r--r--headers.c15
1 files changed, 0 insertions, 15 deletions
diff --git a/headers.c b/headers.c
index 6a353686..199ce85c 100644
--- a/headers.c
+++ b/headers.c
@@ -24,14 +24,6 @@
* level tree.
*/
-STATIC bottom_index * GC_all_bottom_indices = 0;
- /* Pointer to the first (lowest address) */
- /* bottom_index. Assumes the lock is held. */
-
-STATIC bottom_index * GC_all_bottom_indices_end = 0;
- /* Pointer to the last (highest address) */
- /* bottom_index. Assumes the lock is held. */
-
/* Non-macro version of header location routine */
GC_INNER hdr * GC_find_header(ptr_t h)
{
@@ -110,11 +102,6 @@ GC_INNER hdr *
/* Routines to dynamically allocate collector data structures that will */
/* never be freed. */
-STATIC ptr_t GC_scratch_free_ptr = 0;
-
-/* GC_scratch_last_end_ptr is end point of last obtained scratch area. */
-/* GC_scratch_end_ptr is end point of current scratch area. */
-
GC_INNER ptr_t GC_scratch_alloc(size_t bytes)
{
ptr_t result = GC_scratch_free_ptr;
@@ -162,8 +149,6 @@ GC_INNER ptr_t GC_scratch_alloc(size_t bytes)
}
}
-STATIC hdr * GC_hdr_free_list = 0;
-
/* Return an uninitialized header */
static hdr * alloc_hdr(void)
{