| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Issue #496 (bdwgc).
WARN_PRIuPTR is now used to print unsigned values in WARN() calls.
Also, byte values are replaced with KiB ones in some WARN() calls.
* allchblk.c (GC_allochblk_nth): Use WARN_PRIuPTR specifier instead of
WARN_PRIdPTR.
* alloc.c (GC_expand_hp_inner, GC_collect_or_expand): Likewise.
* headers.c (GC_scratch_alloc): Likewise.
* mark.c (alloc_mark_stack): Likewise.
* misc.c (GC_enable): Likewise.
* os_dep.c [NEED_PROC_MAPS] (GC_get_maps): Likewise.
* os_dep.c [PROC_VDB] (GC_proc_read_dirty): Likewise.
* win32_threads.c (GC_delete_thread): Likewise.
* allchblk.c (GC_allochblk_nth): Print KiB value instead of in bytes
in WARN message.
* alloc.c (GC_expand_hp_inner): Likewise.
* misc.c (GC_enable): Likewise.
* alloc.c (GC_expand_hp_inner): Remove unneeded cast of bytes to word.
* headers.c (GC_scratch_alloc): Likewise.
* alloc.c [(!AMIGA || !GC_AMIGA_FASTALLOC) && USE_MUNMAP]
(GC_collect_or_expand): Add assertion to indicate that there is no
underflow in GC_heapsize-GC_unmapped_bytes.
* include/private/gc_priv.h (WARN): Update comment.
* include/private/gc_priv.h [!WARN_PRIdPTR] (WARN_PRIuPTR): Define.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Issue #460 (bdwgc).
* headers.c (GC_apply_to_all_blocks): Add GC_API and GC_CALL modifiers;
use GC_walk_hblk_fn; use GC_word instead of word; declare fn using
GC_walk_hblk_fn; move comment to gc_mark.h.
* include/gc/gc_mark.h (struct GC_hblk_s, GC_walk_hblk_fn): Declare.
* include/gc/gc_mark.h (GC_apply_to_all_blocks): Move declaration from
include/private/gc_priv.h.
* include/private/gcconfig.h [GC_PRIVATE_H] (hblk): Define as macro (to
GC_hblk_s).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* CMakeLists.txt: Update year in copyright comment (2021 to 2022).
* alloc.c: Likewise.
* configure.ac: Likewise.
* dyn_load.c: Likewise.
* include/private/gc_priv.h: Likewise.
* include/private/gcconfig.h: Likewise.
* mallocx.c: Likewise.
* mark.c: Likewise.
* mark_rts.c: Likewise.
* misc.c: Likewise.
* os_dep.c: Likewise.
* pthread_support.c: Likewise.
* reclaim.c: Likewise.
* tests/gctest.c: Likewise.
* win32_threads.c: Likewise.
* LICENSE: Update year (2021 to 2022).
* allchblk.c: Add copyright line in header comment.
* darwin_stop_world.c: Likewise.
* dbg_mlc.c: Likewise.
* gcj_mlc.c: Likewise.
* headers.c: Likewise.
* include/gc/gc_inline.h: Likewise.
* include/gc/gc_mark.h: Likewise.
* include/private/gc_locks.h: Likewise.
* include/private/gc_pmark.h: Likewise.
* include/private/pthread_stop_world.h: Likewise.
* include/private/pthread_support.h: Likewise.
* mach_dep.c: Likewise.
* malloc.c: Likewise.
* thread_local_alloc.c: Likewise.
* typd_mlc.c: Likewise.
* finalize.c: Update year in copyright comment (2020 to 2022).
* include/gc/gc.h: Likewise.
* pthread_stop_world.c: Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(reformatting)
* CMakeLists.txt: Remove an extra space after comma in license header
comment.
* Makefile.am: Likewise.
* allchblk.c: Likewise.
* alloc.c: Likewise.
* backgraph.c: Likewise.
* blacklst.c: Likewise.
* checksums.c: Likewise.
* configure.ac: Likewise.
* cord/cordbscs.c: Likewise.
* cord/cordprnt.c: Likewise.
* cord/cordxtra.c: Likewise.
* cord/tests/cordtest.c: Likewise.
* cord/tests/de.c: Likewise.
* cord/tests/de_cmds.h: Likewise.
* cord/tests/de_win.c: Likewise.
* cord/tests/de_win.h: Likewise.
* cord/tests/de_win.rc: Likewise.
* darwin_stop_world.c: Likewise.
* dbg_mlc.c: Likewise.
* dyn_load.c: Likewise.
* extra/gc.c: Likewise.
* extra/msvc_dbg.c: Likewise.
* extra/pcr_interface.c: Likewise.
* extra/real_malloc.c: Likewise.
* finalize.c: Likewise.
* fnlz_mlc.c: Likewise.
* gc_badalc.cc: Likewise.
* gc_cpp.cc: Likewise.
* gc_dlopen.c: Likewise.
* gcj_mlc.c: Likewise.
* headers.c: Likewise.
* include/gc/cord.h: Likewise.
* include/gc/cord_pos.h: Likewise.
* include/gc/ec.h: Likewise.
* include/gc/gc.h: Likewise.
* include/gc/gc_backptr.h: Likewise.
* include/gc/gc_config_macros.h: Likewise.
* include/gc/gc_disclaim.h: Likewise.
* include/gc/gc_gcj.h: Likewise.
* include/gc/gc_inline.h: Likewise.
* include/gc/gc_mark.h: Likewise.
* include/gc/gc_pthread_redirects.h: Likewise.
* include/gc/gc_tiny_fl.h: Likewise.
* include/gc/gc_typed.h: Likewise.
* include/gc/gc_version.h: Likewise.
* include/gc/javaxfc.h: Likewise.
* include/gc/leak_detector.h: Likewise.
* include/include.am: Likewise.
* include/private/darwin_semaphore.h: Likewise.
* include/private/darwin_stop_world.h: Likewise.
* include/private/dbg_mlc.h: Likewise.
* include/private/gc_alloc_ptrs.h: Likewise.
* include/private/gc_atomic_ops.h: Likewise.
* include/private/gc_hdrs.h: Likewise.
* include/private/gc_locks.h: Likewise.
* include/private/gc_pmark.h: Likewise.
* include/private/gc_priv.h: Likewise.
* include/private/gcconfig.h: Likewise.
* include/private/pthread_stop_world.h: Likewise.
* include/private/pthread_support.h: Likewise.
* include/private/specific.h: Likewise.
* include/private/thread_local_alloc.h: Likewise.
* m4/gc_set_version.m4: Likewise.
* mach_dep.c: Likewise.
* malloc.c: Likewise.
* mallocx.c: Likewise.
* mark.c: Likewise.
* mark_rts.c: Likewise.
* misc.c: Likewise.
* new_hblk.c: Likewise.
* obj_map.c: Likewise.
* os_dep.c: Likewise.
* pthread_start.c: Likewise.
* pthread_stop_world.c: Likewise.
* pthread_support.c: Likewise.
* ptr_chck.c: Likewise.
* reclaim.c: Likewise.
* specific.c: Likewise.
* tests/atomicops.c: Likewise.
* tests/cpp.cc: Likewise.
* tests/disclaim.c: Likewise.
* tests/disclaim_bench.c: Likewise.
* tests/gctest.c: Likewise.
* tests/tests.am: Likewise.
* tests/weakmap.c: Likewise.
* thread_local_alloc.c: Likewise.
* tools/setjmp_t.c: Likewise.
* tools/threadlibs.c: Likewise.
* typd_mlc.c: Likewise.
* win32_threads.c: Likewise.
* LICENSE: Remove an extra space after comma in license terms.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(refactoring)
Also, replace 0 to NULL where appropriate.
* allchblk.c (setup_header, GC_get_first_part, GC_allochblk_nth):
Remove outermost parentheses in the expression of return statement.
* alloc.c (GC_never_stop_func, GC_timeout_stop_func,
GC_adj_bytes_allocd, GC_try_to_collect_inner, GC_collect_a_little,
GC_stopped_mark, GC_try_to_collect_general, GC_expand_hp_inner,
GC_collect_or_expand, GC_allocobj): Likewise.
* blacklst.c (GC_is_black_listed, GC_number_stack_black_listed,
total_stack_black_listed): Likewise.
* checksums.c (GC_checksum): Likewise.
* cord/cordbscs.c (CORD_cat_char_star, CORD_cat, CORD_len,
CORD_index_access_fn, CORD_apply_access_fn, CORD_substr_checked,
CORD_substr, CORD_iter5, CORD_iter, CORD_riter4, CORD_riter,
CORD_concat_forest, CORD_balance, CORD__pos_fetch, CORD__prev,
CORD_prev, CORD_pos_to_cord, CORD_pos_valid): Likewise.
* cord/cordprnt.c (extract_conv_spec, CORD_vsprintf, CORD_sprintf,
CORD_fprintf, CORD_vfprintf, CORD_printf, CORD_vprintf): Likewise.
* cord/cordxtra.c (CORD_cat_char, CORD_catn, CORD_fill_proc,
CORD_batched_fill_proc, CORD_cmp, CORD_ncmp, CORD_to_char_star,
CORD_from_char_star, CORD_to_const_char_star, CORD_fetch,
CORD_put_proc, CORD_batched_put_proc, CORD_put, CORD_chr_proc,
CORD_rchr_proc, CORD_batched_chr_proc, CORD_chr, CORD_rchr, CORD_str,
CORD_from_file_eager, CORD_lf_func, CORD_from_file_lazy_inner,
CORD_from_file_lazy, CORD_from_file): Likewise.
* cord/tests/cordtest.c (test_fn, id_cord_fn, test_basics): Likewise.
* cord/tests/de.c (line_pos, add_hist, retrieve_line, beep): Likewise.
* cord/tests/de_win.c (WinMain, plain_chars, control_chars, WndProc):
Likewise.
* dbg_mlc.c (store_debug_info, GC_debug_generic_malloc,
GC_debug_generic_malloc, GC_debug_realloc, GC_make_closure): Likewise.
* dyn_load.c (GC_FirstDLOpenedLinkMap): Likewise.
* extra/real_malloc.c (real_malloc): Likewise.
* finalize.c (GC_register_disappearing_link,
GC_unregister_disappearing_link): Likewise.
* gc_dlopen.c (dlopen): Likewise.
* gcj_mlc.c (maybe_finalize, GC_debug_gcj_malloc,
GC_gcj_malloc_ignore_off_page): Likewise.
* headers.c (GC_find_header, alloc_hdr, get_index, GC_install_header,
GC_next_block, GC_prev_block): Likewise.
* malloc.c (GC_generic_malloc): Likewise.
* mallocx.c (GC_realloc, GC_generic_malloc_ignore_off_page): Likewise.
* mark.c (GC_collection_in_progress, GC_mark_some,
GC_signal_mark_stack_overflow, GC_block_was_dirty,
GC_push_next_marked, GC_push_next_marked_dirty,
GC_push_next_marked_uncollectable): Likewise.
* mark_rts.c (GC_is_static_root, rt_hash, GC_roots_present,
GC_remove_tmp_roots, GC_approx_sp): Likewise.
* misc.c (GC_default_oom_fn, GC_clear_stack_inner, GC_base,
GC_write, GC_get_warn_proc, GC_call_with_alloc_lock): Likewise.
* new_hblk.c (GC_build_fl_clear2, GC_build_fl_clear4, GC_build_fl2,
GC_build_fl4, GC_build_fl): Likewise.
* obj_map.c (GC_register_displacement_inner): Likewise.
* os_dep.c (GC_find_limit_openbsd, GC_skip_hole_openbsd,
GC_get_writable_length, GC_get_writable_length, GC_get_main_stack_base,
GC_FreeBSDGetDataStart, GC_unix_mmap_get_mem, GC_unix_sbrk_get_mem,
os2_alloc, GC_wince_get_mem, GC_win32_get_mem, GC_push_thread_stack,
GC_push_old_obj, GC_write_fault_handler, catch_exception_raise_state,
catch_exception_raise_state_identity): Likewise.
* pthread_support.c (GC_new_thread, GC_lookup_thread, GC_get_nprocs,
pthread_sigmask, pthread_create): Likewise.
* ptr_chck.c (GC_same_obj, GC_default_is_visible_print_proc,
GC_default_is_valid_displacement_print_proc, GC_is_visible,
GC_pre_incr, GC_post_incr): Likewise.
* reclaim.c (GC_block_empty, GC_reclaim_uninit, GC_n_set_marks,
GC_reclaim_all): Likewise.
* tests/cpp.cc (main): Likewise.
* tests/gctest.c (fake_gcj_mark_proc, reverse1, reverse, ints,
gcj_reverse1, gcj_reverse, gcj_ints, uncollectable_ints, mktree,
alloc8bytes, main, test): Likewise.
* tools/if_mach.c (main): Likewise.
* tools/if_not_there.c (main): Likewise.
* tools/setjmp_t.c (getpagesize, main, g): Likewise.
* typd_mlc.c (GC_add_ext_descriptor, GC_add_ext_descriptor,
GC_double_descr, GC_make_array_descriptor,
GC_make_sequence_descriptor, GC_typed_mark_proc, GC_descr_obj_size,
GC_push_complex_descriptor, GC_array_mark_proc, GC_make_descriptor,
GC_calloc_explicitly_typed): Likewise.
* win32_threads.c (GC_new_thread, GC_lookup_thread_inner,
GC_get_stack_min, GC_pthread_create, GC_pthread_start_inner): Likewise.
* allchblk.c (GC_get_first_part, GC_allochblk_nth): Replace 0 to NULL
where appropriate.
* alloc.c (GC_allocobj): Likewise.
* blacklst.c (GC_is_black_listed): Likewise.
* cord/cordbscs.c (CORD_from_fn_inner, CORD_substr_checked): Likewise.
* cord/cordxtra.c (CORD_cat_char, CORD_to_char_star,
CORD_from_char_star, CORD_lf_func, CORD_from_file_lazy_inner):
Likewise.
* dbg_mlc.c (store_debug_info, GC_debug_generic_malloc,
GC_debug_generic_malloc): Likewise.
* dyn_load.c (GC_FirstDLOpenedLinkMap): Likewise.
* gcj_mlc.c (GC_debug_gcj_malloc): Likewise.
* headers.c (GC_next_block, GC_prev_block): Likewise.
* malloc.c (GC_generic_malloc, strdup): Likewise.
* mallocx.c (GC_realloc): Likewise.
* misc.c (GC_default_oom_fn, GC_base): Likewise.
* os_dep.c (GC_get_main_stack_base, os2_alloc, GC_win32_get_mem):
Likewise.
* pthread_support.c (GC_new_thread, GC_lookup_thread): Likewise.
* ptr_chck.c (GC_same_obj, GC_is_visible,
GC_default_is_valid_displacement_print_proc): Likewise.
* tests/gctest.c (mktree): Likewise.
* typd_mlc.c (GC_make_array_descriptor, GC_push_complex_descriptor,
GC_array_mark_proc, GC_calloc_explicitly_typed): Likewise.
* win32_threads.c (GC_new_thread, GC_lookup_thread_inner): Likewise.
* alloc.c (GC_never_stop_func, GC_timeout_stop_func): Replace 0 and 1
(in return statement) to FALSE and TRUE, respectively.
* include/private/gcconfig.h: Remove outermost parentheses in the
expression of return statement in comment.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(refactoring)
* allchblk.c (setup_header, GC_get_first_part, GC_allochblk_nth): Add
assertion that the GC lock is held (I_HOLD_LOCK).
* alloc.c (GC_add_to_heap, GC_scratch_recycle_inner): Likewise.
* backgraph.c (push_in_progress, backwards_height): Likewise.
* blacklst.c (GC_bl_init_no_interiors, GC_bl_init): Likewise.
* dyn_load.c (GC_register_dynamic_libraries): Likewise.
* finalize.c (push_and_mark_object): Likewise.
* finalize.c [!GC_TOGGLE_REFS_NOT_NEEDED] (GC_mark_togglerefs):
Likewise.
* headers.c (GC_scratch_alloc, alloc_hdr, GC_init_headers,
GC_install_header): Likewise.
* include/private/gc_pmark.h (GC_MARK_FO): Likewise.
* malloc.c (GC_alloc_reclaim_list): Likewise.
* mark.c (GC_mark_some_inner, alloc_mark_stack): Likewise.
* mark_rts.c [DYNAMIC_LOADING || MSWIN32 || MSWINCE || PCR || CYGWIN32]
(GC_remove_tmp_roots): Likewise.
* mark_rts.c (GC_cond_register_dynamic_libraries, GC_push_roots):
Likewise.
* obj_map.c [MARK_BIT_PER_GRANULE] (GC_add_map_entry): Likewise.
* os_dep.c [NEED_PROC_MAPS && IA64] (backing_store_base_from_proc):
Likewise.
* os_dep.c [LINUX_STACKBOTTOM && IA64] (GC_get_register_stack_base):
Likewise.
* os_dep.c [MSWIN32] (GC_register_root_section): Likewise.
* os_dep.c [!OS2 && !MSWIN32 && !MSWINCE && !CYGWIN32]
(GC_register_data_segments): Likewise.
* os_dep.c [GWW_VDB] (GC_gww_dirty_init, GC_gww_read_dirty): Likewise.
* os_dep.c (GC_dirty_init): Likewise.
* os_dep.c [PROC_VDB] (GC_proc_read_dirty): Likewise.
* os_dep.c [SOFT_VDB] (soft_dirty_init, GC_soft_read_dirty): Likewise.
* os_dep.c [!GC_DISABLE_INCREMENTAL] (GC_read_dirty): Likewise.
* dyn_load.c [IRIX5 || USE_PROC_FOR_LIBRARIES && !LINUX]
(GC_register_dynamic_libraries): Round up size of buf local variable
to multiple of 8 bytes.
* headers.c (GC_install_header): Use EXPECT().
* malloc.c (GC_alloc_reclaim_list): Likewise.
* obj_map.c [MARK_BIT_PER_GRANULE] (GC_add_map_entry): Likewise.
* mark_rts.c [DYNAMIC_LOADING || MSWIN32 || MSWINCE || PCR || CYGWIN32]
(GC_remove_tmp_roots, GC_push_roots): Remove redundant comment.
* misc.c [GC_ASSERTIONS && GC_ALWAYS_MULTITHREADED] (GC_init): Wrap
calls of GC_get_main_stack_base(), GC_get_register_stack_base(),
GC_init_headers(), GC_dirty_init(), GC_register_data_segments(),
GC_bl_init(), GC_mark_init() into LOCK/UNLOCK.
* os_dep.c [OPENBSD] (GC_skip_hole_openbsd): Move sysconf() call to be
after the assertion that the GC lock is held.
* os_dep.c [HPUX_STACKBOTTOM] (GC_get_register_stack_base): Add
assertion that GC_stackbottom is set.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Issue #237 (bdwgc).
This also prevents writing zeros to GC_all_nils by GC_remove_counts().
* headers.c (GC_remove_counts): If HDR(h+1) is zero (and sz is at least
one block) then assert that HDR() of other hbp elements is zero too and
then return (w/o SET_HDR(hbp,0) invocation).
* ptr_chck.c (GC_is_valid_displacement): Remove comment that if(p) is
needed to avoid a data race.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(refactoring)
* alloc.c [USE_PROC_FOR_LIBRARIES] (GC_add_to_our_memory): Do not
accept p == NULL (add assertion about it).
* alloc.c (GC_expand_hp_inner): Call GC_add_to_our_memory() only if
the pointer is non-NULL; Use EXPECT() to check the pointer.
* backgraph.c [MAKE_BACK_GRAPH] (push_in_progress): Likewise.
* headers.c (GC_scratch_alloc): Likewise.
* include/private/gc_priv.h [USE_PROC_FOR_LIBRARIES]
(GC_add_to_our_memory): Remove comment that p could be NULL.
* include/private/gc_priv.h [!USE_PROC_FOR_LIBRARIES]
(GC_add_to_our_memory): Cast p and bytes to void.
|
|
|
|
|
|
|
|
| |
Issue #270 (bdwgc).
* headers.c (GC_scratch_alloc): Add bytes to GC_scratch_free_ptr only
if no overflow (and not beyond GC_scratch_end_ptr); add assertion that
GC_scratch_end_ptr is not less than GC_scratch_free_ptr.
|
|
|
|
|
|
|
|
|
|
|
|
| |
(refactoring)
* headers.c (GC_scratch_alloc): Do not update GC_scratch_last_end_ptr
unless USE_SCRATCH_LAST_END_PTR; add TODO item.
* include/private/gc_priv.h [IRIX5 || USE_PROC_FOR_LIBRARIES && !LINUX]
(USE_SCRATCH_LAST_END_PTR): Define macro.
* include/private/gc_priv.h (_GC_arrays._scratch_last_end_ptr,
GC_scratch_last_end_ptr): Do define unless USE_SCRATCH_LAST_END_PTR;
refine comment.
|
|
|
|
|
| |
* headers.c (GC_scratch_alloc): Update GC_scratch_last_end_ptr even if
the first GET_MEM() call fails because of out of memory.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Issue #324 (bdwgc).
When the number of areas exceeds vm.max_map_count on Linux (~65530 by
default) then the mmap call in GC_unmap fails with ENOMEM.
This commit fixes the issue by establishing a soft limit on the
number of unmapped regions.
* allchblk.c (get_block_ending_at): New static function.
* allchblk.c [USE_MUNMAP && COUNT_UNMAPPED_REGIONS]
(calc_num_unmapped_regions_delta): Likewise.
* allchblk.c (GC_free_block_ending_at): Use get_block_ending_at().
* allchblk.c [GC_adjust_num_unmapped] (GC_adjust_num_unmapped): New
inline function.
* allchblk.c [USE_MUNMAP && COUNT_UNMAPPED_REGIONS] (GC_unmap_old):
Skip unmapping if GC_num_unmapped_regions exceeds
GC_UNMAPPED_REGIONS_SOFT_LIMIT, update GC_num_unmapped_regions value
otherwise (before GC_unmap).
* allchblk.c [USE_MUNMAP] (GC_merge_unmapped, GC_allochblk_nth): Call
GC_adjust_num_unmapped() before GC_remap() and GC_unmap().
* headers.c (GC_next_used_block, GC_prev_block): Move/refine comment
to gc_priv.h.
* headers.c (GC_next_used_block): Rename to GC_next_block and add
allow_free parameter.
* include/private/gc_priv.h (GC_next_used_block): Likewise.
* include/private/gc_priv.h [USE_MUNMAP && COUNT_UNMAPPED_REGIONS]
(_GC_arrays): Add _num_unmapped_regions field.
* include/private/gcconfig.h [(M68K || POWERPC || SPARC || I386
|| MIPS || OR1K || ALPHA || IA64 || S390 || AARCH64 || ARM32 || CRIS
|| SH && !SH4 || AVR32 || M32R || X86_64 || HEXAGON || TILEPRO
|| TILEGX || RISCV) && LINUX] (COUNT_UNMAPPED_REGIONS): Define macro.
* include/private/gcconfig.h [USE_MUNMAP && COUNT_UNMAPPED_REGIONS
&& !GC_UNMAPPED_REGIONS_SOFT_LIMIT] (GC_UNMAPPED_REGIONS_SOFT_LIMIT):
Likewise.
* os_dep.c [USE_MUNMAP] (GC_unmap_end): Move to gc_priv.h and make it
inline.
* mark.c (GC_push_next_marked, GC_push_next_marked_dirty,
GC_push_next_marked_uncollectable): Use GC_next_block(h, FALSE)
instead of GC_next_used_block(h).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* alloc.c (GC_expand_hp_inner): Assert that GC_page_size is non-zero.
* backgraph.c (new_back_edges, push_in_progress): Likewise.
* headers.c (GC_scratch_alloc): Likewise.
* mark.c (GC_wait_for_markers_init): Likewise.
* misc.c [GC_READ_ENV_FILE && (MSWIN32 || MSWINCE || CYGWIN32)]
(GC_envfile_init): Likewise.
* os_dep.c [!OS2 && GWW_VDB] (detect_GetWriteWatch): Likewise.
* os_dep.c [MSWIN32] (GC_least_described_address): Likewise.
* os_dep.c [MMAP_SUPPORTED && !MSWIN_XBOX1] (GC_unix_mmap_get_mem):
Likewise.
* os_dep.c [MMAP_SUPPORTED && !USE_MMAP] (GC_unix_sbrk_get_mem):
Likewise.
* os_dep.c [MSWINCE] (GC_wince_get_mem): Likewise.
* os_dep.c [USE_MUNMAP] (GC_unmap_start): Likewise.
* os_dep.c [!GC_DISABLE_INCREMENTAL && MPROTECT_VDB && !DARWIN]
(GC_write_fault_handler): Likewise.
* os_dep.c [!GC_DISABLE_INCREMENTAL && MPROTECT_VDB] (GC_protect_heap,
GC_remove_protection): Likewise.
* os_dep.c [!GC_DISABLE_INCREMENTAL && MPROTECT_VDB && DARWIN]
(catch_exception_raise): Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(code refactoring)
The following variables are prefixed: scratch_free_ptr, hdr_free_list,
scan_ptr, main_local_mark_stack, roots_were_cleared.
* doc/gcdescr.md (Mark phase): Add GC_ prefix to scan_ptr.
* headers.c (scratch_free_ptr, hdr_free_list): Add GC_ prefix to name;
change static to STATIC.
* mark.c (scan_ptr): Likewise.
* mark.c [PARALLEL_MARK] (main_local_mark_stack): Likewise.
* mark_rts.c (roots_were_cleared): Likewise.
* headers.c (GC_scratch_alloc): Add GC_ prefix to scratch_free_ptr.
* headers.c (alloc_hdr, free_hdr): Add GC_ prefix to hdr_free_list.
* headers.c (GC_init_headers): Add assertion that GC_all_nils is null
on entry.
* include/private/gc_pmark.h (MS_PUSH_RESCUERS, MS_PUSH_UNCOLLECTABLE,
MS_PARTIALLY_INVALID): Add GC_ prefix to scan_ptr.
* mark.c (GC_clear_marks, GC_initiate_gc, alloc_mark_stack): Likewise.
* mark.c [WRAP_MARK_SOME] (GC_mark_some): Likewise.
* mark.c [PARALLEL_MARK] (GC_wait_for_markers_init,
GC_do_parallel_mark): Add GC_ prefix to main_local_mark_stack.
* mark_rts.c (GC_clear_roots, GC_push_roots): Add GC_ prefix to
roots_were_cleared.
* mark_rts.c (GC_next_exclusion): Add assertion that
GC_excl_table_entries is positive.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(code refactoring)
* alloc.c (GC_collect_at_heapsize, GC_compute_heap_usage_percent,
GC_add_to_heap, GC_expand_hp_inner): Use GC_WORD_MAX instead of
(word)-1.
* dyn_load.c [DATASTART_IS_FUNC]
(GC_register_dynamic_libraries_dl_iterate_phdr): Likewise.
* finalize.c [KEEP_BACK_PTRS] (GC_notify_or_invoke_finalizers):
Likewise.
* headers.c (GC_install_counts): Likewise.
* include/private/thread_local_alloc.h [GC_GCJ_SUPPORT] (ERROR_FL):
Likewise.
* os_dep.c [NEED_FIND_LIMIT || USE_PROC_FOR_LIBRARIES] (GC_find_limit):
Likewise.
* os_dep.c [MPROTECT_VDB && DARWIN] (GC_mprotect_thread): Likewise.
* pthread_support.c [PARALLEL_MARK] (GC_mark_thread): Likewise.
* win32_threads.c (ADDR_LIMIT): Likewise.
* win32_threads.c [PARALLEL_MARK] (GC_mark_thread): Likewise.
* alloc.c (GC_least_plausible_heap_addr): Use GC_WORD_MAX instead of
ONES macro.
* include/private/gc_priv.h [STACK_GROWS_DOWN] (MAKE_COOLER): Likewise.
* mark.c (GC_set_hdr_marks): Likewise.
* alloc.c (GC_WORD_MAX): Remove definition (in this file).
* headers.c (GC_install_counts): Reformat code.
* include/private/gc_priv.h (ONES): Rename to GC_WORD_MAX.
|
|
|
|
|
|
|
|
|
| |
(fix of commit 6a32bb4)
Issue #245 (bdwgc).
* headers.c (GC_install_counts): Better comment for the case of
overflow.
|
|
|
|
|
|
|
|
|
| |
Issue #245 (bdwgc).
The overflow resulted in an infinite loop in GC_install_counts on Win32.
* headers.c (GC_install_counts): If hbp+=BOTTOM_SZ overflow is expected
then break the first loop.
|
|
|
|
|
|
|
|
|
|
|
| |
(fix of commit 5e6cc59b0)
GC_apply_to_all_blocks may be called by GC_print_block_list which,
in turn, might be called from the debugger not holding the lock.
* headers.c (GC_apply_to_all_blocks): Add comment about the lock;
remove VARARGS1 in comment; remove explicit assertion that the lock
is held.
|
|
|
|
|
|
|
|
|
|
|
| |
(code refactoring)
* headers.c (GC_all_bottom_indices, GC_all_bottom_indices_end): Add
comment that the variable should be accessed with the allocation lock
held.
* headers.c (get_index, GC_apply_to_all_blocks, GC_next_used_block,
GC_prev_block): Add assertion (at the beginning of the function) that
the allocation lock is held.
|
|
|
|
|
|
|
|
|
|
|
| |
(code refactoring)
* headers.c [HASH_TL] (get_index): Remove old local variable (use pi
instead).
* headers.c (get_index): Eliminate code duplication; use EXPECT() to
check the result of GC_scratch_alloc().
* headers.c (get_index): Update GC_top_index[i] value only at the end
of the function.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Issue #206 (bdwgc).
* headers.c (GC_next_used_block): Replace register keyword to REGISTER.
* include/private/gc_hdrs.h [HASH_TL] (GET_BI, GET_HDR_ADDR, GET_HDR,
SET_HDR): Likewise.
* mark.c (GC_push_all_eager): Likewise.
* mark.c [WRAP_MARK_SOME && PARALLEL_MARK] (GC_push_conditional_eager):
Likewise.
* include/private/gc_priv.h (REGISTER): New macro (defined before
include gc_hdrs.h); add comment.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Issue #206 (bdwgc).
* blacklst.c (GC_number_stack_black_listed, total_stack_black_listed):
Remove register keyword for local variables.
* dyn_load.c [IRIX5 || USE_PROC_FOR_LIBRARIES && !LINUX]
(GC_register_dynamic_libraries): Likewise.
* extra/pcr_interface.c [PCR] (GC_enumerate_block): Likewise.
* finalize.c (GC_grow_table): Likewise.
* headers.c (alloc_hdr, GC_init_headers, GC_remove_counts,
GC_prev_block): Likewise.
* include/private/gc_pmark.h (PUSH_OBJ): Likewise.
* mach_dep.c [!HAVE_PUSH_REGS && !HAVE_BUILTIN_UNWIND_INIT]
(GC_with_callee_saves_pushed): Likewise.
* mark.c (clear_marks_for_block): Likewise.
* mark_rts.c [MSWIN32 || MSWINCE || CYGWIN32] (GC_add_roots_inner):
Likewise.
* mark_rts.c [!NO_DEBUGGING] (GC_is_tmp_root): Likewise.
* os_dep.c [GWW_VDB || MPROTECT_VDB || PROC_VDB || MANUAL_VDB]
(GC_page_was_dirty): Likewise.
* os_dep.c [CHECKSUMS && GWW_VDB || PROC_VDB] (GC_or_pages,
GC_page_was_ever_dirty): Likewise.
* os_dep.c (GC_write_fault_handler): Likewise.
* os_dep.c [PROC_VDB] (GC_read_dirty): Likewise.
* os_dep.c [MPROTECT_VDB && DARWIN] (catch_exception_raise): Likewise.
* os_dep.c [SAVE_CALL_CHAIN && NARGS>0] (GC_save_callers): Likewise.
* pthread_stop_world.c [!NACL] (GC_start_world): Likewise.
* pthread_support.c (GC_delete_thread, GC_delete_gc_thread): Likewise.
* typd_mlc.c (GC_push_complex_descriptor): Likewise.
* win32_threads.c (GC_delete_gc_thread_no_free, GC_delete_thread):
Likewise.
|
|
|
|
|
|
|
|
|
|
| |
* dyn_load.c [IRIX5 || USE_PROC_FOR_LIBRARIES && !LINUX]
(GC_register_dynamic_libraries): Do not cast GC_scratch_alloc argument
to word type (it should be of size_t).
* headers.c (alloc_hdr, GC_init_headers, get_index): Likewise.
* os_dep.c [PROC_VDB] (GC_proc_buf_size): Change type from word to size_t.
* os_dep.c [PROC_VDB] (GC_read_dirty): Change type of new_size local
variable (which is passed to GC_scratch_alloc) from word to size_t.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* allchblk.c (GC_compute_large_free_bytes, GC_print_hblkfreelist,
free_list_index_of, GC_dump_regions, GC_add_to_fl, GC_unmap_old,
GC_allochblk_nth): Move local variable declaration to the inner scope
where the variable is actually used.
* alloc.c (GC_maybe_gc, GC_collect_a_little_inner, GC_set_fl_marks,
GC_clear_fl_marks): Likewise.
* dyn_load.c (GC_register_dynamic_libraries): Likewise.
* finalize.c (GC_ignore_self_finalize_mark_proc,
GC_register_finalizer_inner, GC_dump_finalization_links,
GC_dump_finalization, GC_make_disappearing_links_disappear,
GC_remove_dangling_disappearing_links, GC_invoke_finalizers): Likewise.
* headers.c (GC_install_counts): Likewise.
* malloc.c (GC_malloc_kind_global, GC_generic_malloc_uncollectable,
GC_free): Likewise.
* mark.c (GC_push_all_eager, GC_push_marked1, GC_push_marked2,
GC_push_marked4): Likewise.
* mark_rts.c (GC_next_exclusion, GC_exclude_static_roots_inner,
GC_push_conditional_with_exclusions): Likewise.
* misc.c (GC_base, GC_parse_mem_size_arg, GC_write): Likewise.
* os_dep.c (GC_repeat_read, GC_get_maps, GC_least_described_address,
GC_register_root_section, GC_register_data_segments): Likewise.
* reclaim.c (GC_reclaim_block, GC_start_reclaim): Likewise.
* finalize.c (ITERATE_DL_HASHTBL_BEGIN): Declare prev_dl local variable.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
See issue #135 on Github.
* allchblk.c (GC_allochblk, GC_allochblk_nth): Use
OBJ_SZ_TO_BLOCKS_CHECKED instead of OBJ_SZ_TO_BLOCKS.
* malloc.c (GC_alloc_large): Likewise.
* alloc.c (GC_expand_hp_inner): Type of "bytes" local variable changed
from word to size_t; cast ROUNDUP_PAGESIZE argument to size_t; prevent
overflow when computing GC_heapsize+bytes > GC_max_heapsize.
* dbg_mlc.c (GC_debug_malloc, GC_debug_malloc_ignore_off_page,
GC_debug_malloc_atomic_ignore_off_page, GC_debug_generic_malloc,
GC_debug_generic_malloc_inner,
GC_debug_generic_malloc_inner_ignore_off_page,
GC_debug_malloc_stubborn, GC_debug_malloc_atomic,
GC_debug_malloc_uncollectable, GC_debug_malloc_atomic_uncollectable):
Use SIZET_SAT_ADD (instead of "+" operator) to add extra bytes to lb
value.
* fnlz_mlc.c (GC_finalized_malloc): Likewise.
* gcj_mlc.c (GC_debug_gcj_malloc): Likewise.
* include/private/gc_priv.h (ROUNDUP_GRANULE_SIZE, ROUNDED_UP_GRANULES,
ADD_SLOP, ROUNDUP_PAGESIZE): Likewise.
* include/private/gcconfig.h (GET_MEM): Likewise.
* mallocx.c (GC_malloc_many, GC_memalign): Likewise.
* os_dep.c (GC_wince_get_mem, GC_win32_get_mem): Likewise.
* typd_mlc.c (GC_malloc_explicitly_typed,
GC_malloc_explicitly_typed_ignore_off_page,
GC_calloc_explicitly_typed): Likewise.
* headers.c (GC_scratch_alloc): Change type of bytes_to_get from word
to size_t (because ROUNDUP_PAGESIZE_IF_MMAP result type changed).
* include/private/gc_priv.h: Include limits.h (unless SIZE_MAX already
defined).
* include/private/gc_priv.h (GC_SIZE_MAX, GC_SQRT_SIZE_MAX): Move from
malloc.c file.
* include/private/gc_priv.h (SIZET_SAT_ADD): New macro (defined before
include gcconfig.h).
* include/private/gc_priv.h (EXTRA_BYTES, GC_page_size): Change type
to size_t.
* os_dep.c (GC_page_size): Likewise.
* include/private/gc_priv.h (ROUNDUP_GRANULE_SIZE, ROUNDED_UP_GRANULES,
ADD_SLOP, ROUNDUP_PAGESIZE): Add comment about the argument.
* include/private/gcconfig.h (GET_MEM): Likewise.
* include/private/gc_priv.h (ROUNDUP_GRANULE_SIZE, ROUNDED_UP_GRANULES,
ADD_SLOP, OBJ_SZ_TO_BLOCKS, ROUNDUP_PAGESIZE,
ROUNDUP_PAGESIZE_IF_MMAP): Rename argument to "lb".
* include/private/gc_priv.h (OBJ_SZ_TO_BLOCKS_CHECKED): New macro.
* include/private/gcconfig.h (GC_win32_get_mem, GC_wince_get_mem,
GC_unix_get_mem): Change argument type from word to int.
* os_dep.c (GC_unix_mmap_get_mem, GC_unix_get_mem,
GC_unix_sbrk_get_mem, GC_wince_get_mem, GC_win32_get_mem): Likewise.
* malloc.c (GC_alloc_large_and_clear): Call OBJ_SZ_TO_BLOCKS only
if no value wrap around is guaranteed.
* malloc.c (GC_generic_malloc): Do not check for lb_rounded < lb case
(because ROUNDED_UP_GRANULES and GRANULES_TO_BYTES guarantees no value
wrap around).
* mallocx.c (GC_generic_malloc_ignore_off_page): Likewise.
* misc.c (GC_init_size_map): Change "i" local variable type from int
to size_t.
* os_dep.c (GC_write_fault_handler, catch_exception_raise): Likewise.
* misc.c (GC_envfile_init): Cast len to size_t when passed to
ROUNDUP_PAGESIZE_IF_MMAP.
* os_dep.c (GC_setpagesize): Cast GC_sysinfo.dwPageSize and
GETPAGESIZE() to size_t (when setting GC_page_size).
* os_dep.c (GC_unix_mmap_get_mem, GC_unmap_start, GC_remove_protection):
Expand ROUNDUP_PAGESIZE macro but without value wrap-around checking
(the argument is of word type).
* os_dep.c (GC_unix_mmap_get_mem): Replace -GC_page_size with
~GC_page_size+1 (because GC_page_size is unsigned); remove redundant
cast to size_t.
* os_dep.c (GC_unix_sbrk_get_mem): Add explicit cast of GC_page_size
to SBRK_ARG_T.
* os_dep.c (GC_wince_get_mem): Change type of res_bytes local variable
to size_t.
* typd_mlc.c: Do not include limits.h.
* typd_mlc.c (GC_SIZE_MAX, GC_SQRT_SIZE_MAX): Remove (as defined in
gc_priv.h now).
|
|
|
|
|
|
|
| |
* headers.c (GC_scratch_alloc): Do not reassign "bytes_to_get" local
variable to avoid compiler warning in case of ROUNDUP_PAGESIZE_IF_MMAP
is a no-op (i.e., assign bytes_to_get only once directly to a rounded
value).
|
|
|
|
|
|
|
|
|
|
| |
* headers.c (GC_scratch_alloc): Remove "register" keyword for "result"
local variable; replace tail recursion with a loop; adjust and add
comments.
* headers.c (GC_scratch_alloc): Adjust message and output requested
allocation size in WARN().
* include/private/gc_priv.h (_GC_arrays._scratch_last_end_ptr):
Improve comment.
|
|
|
|
|
| |
* headers.c (GC_scratch_alloc): Do not update GC_scratch_last_end_ptr
if allocation failed ("result" variable is NULL).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(Prevent abort in GC_unix_mmap_get_mem if the allocation size is not
a multiple of a page size.)
* backgraph.c (new_back_edges, push_in_progress): Use
ROUNDUP_PAGESIZE_IF_MMAP() to adjust GET_MEM() argument (when needed).
* headers.c (GC_scratch_alloc): Likewise.
* misc.c (GC_envfile_init): Likewise.
* include/private/gc_priv.h (ROUNDUP_PAGESIZE_IF_MMAP): New macro.
* include/private/gcconfig.h (MMAP_SUPPORTED): Move definition from
os_dep.c (as needed for ROUNDUP_PAGESIZE_IF_MMAP() definition).
* include/private/gcconfig.h (GET_MEM): Refine comment (regarding its
argument).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* alloc.c (GC_expand_hp_inner): Use ROUNDUP_PAGESIZE().
* checksums.c (GC_record_fault, GC_was_faulted): Likewise.
* os_dep.c (GC_unix_mmap_get_mem, GC_wince_get_mem, GC_unmap_start,
GC_remove_protection): Likewise.
* headers.c (GC_scratch_alloc): Use ROUNDUP_GRANULE_SIZE().
* malloc.c (GC_alloc_large): Likewise.
* mallocx.c (GC_malloc_many): Likewise.
* headers.c (GC_scratch_alloc): Use ROUNDUP_PAGESIZE() (only if
USE_MMAP).
* include/private/gc_priv.h (ROUNDUP_GRANULE_SIZE, ROUNDUP_PAGESIZE):
Define macro to round up a value to a multiple of a granule or a page,
respectively.
|
|
|
|
|
|
|
|
| |
* alloc.c (GC_expand_hp_inner): Replace GC_COND_LOG_PRINTF call to
WARN() call (with WARN_PRIdPTR argument type format specifier) for the
message about failure.
* headers.c (GC_scratch_alloc): Likewise.
* mark.c (GC_mark_some, alloc_mark_stack): Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(code refactoring)
* allchblk.c (GC_freehblk): Replace
"if (GC_print_stats) GC_log_printf" with GC_COND_LOG_PRINTF.
* alloc.c (GC_timeout_stop_func, GC_maybe_gc, GC_try_to_collect_inner,
GC_stopped_mark, GC_finish_collection, GC_expand_hp_inner,
GC_collect_or_expand): Likewise.
* backgraph.c (backwards_height, GC_print_back_graph_stats): Likewise.
* checksums.c (GC_check_blocks, GC_check_dirty): Likewise.
* dyn_load.c (GC_register_dynamic_libraries): Likewise.
* finalize.c (GC_general_register_disappearing_link,
GC_register_finalizer_inner): Likewise.
* gcj_mlc.c (GC_init_gcj_malloc): Likewise.
* headers.c (GC_scratch_alloc): Likewise.
* mark.c (GC_mark_some_inner, GC_mark_some,
GC_signal_mark_stack_overflow, GC_return_mark_stack,
alloc_mark_stack): Likewise.
* obj_map.c (GC_add_map_entry): Likewise.
* os_dep.c (GC_get_maps, backing_store_base_from_proc,
GC_register_data_segments, detect_GetWriteWatch,
GC_add_current_malloc_heap, GC_remap, PROTECT, GC_write_fault_handler,
GC_dirty_init, GC_mprotect_thread): Likewise.
* pthread_stop_world.c (GC_stop_world, GC_start_world, GC_stop_init):
Likewise.
* pthread_support.c (start_mark_threads, GC_thr_init): Likewise.
* win32_threads.c (GC_register_my_thread_inner, GC_thr_init):
Likewise.
* alloc.c (GC_finish_collection): Replace
"if (GC_print_stats == VERBOSE) GC_log_printf" with
GC_VERBOSE_LOG_PRINTF.
* blacklst.c (GC_promote_black_lists): Likewise.
* darwin_stop_world.c (GC_push_all_stacks): Likewise.
* mark.c (GC_mark_local, GC_do_parallel_mark): Likewise.
* os_dep.c (GC_dirty_init): Likewise.
* pthread_stop_world.c (GC_push_all_stacks): Likewise.
* win32_threads.c (GC_push_all_stacks): Likewise.
* include/private/gc_priv.h (GC_COND_LOG_PRINTF,
GC_VERBOSE_LOG_PRINTF): New macro (check GC_print_stats and call
GC_log_printf if enabled).
* os_dep.c (GC_dirty_init, GC_read_dirty): Replace
"if (GC_print_stats) GC_err_printf" with WARN.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(if out of memory)
* dyn_load.c (GC_register_dynamic_libraries): If GC_scratch_alloc
fails (returns null) then abort (with the appropriate message) instead
of causing SEGV.
* os_dep.c (GC_dirty_init): Likewise.
* headers.c (GC_init_headers): Report error and exit if
GC_scratch_alloc fails.
* include/private/gc_priv.h (GC_scratch_alloc): Improve comment.
* os_dep.c (GC_print_address_map): If GC_get_maps return null then
print the appropriate message (instead of passing null to GC_err_puts
thus causing SEGV).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* allchblk.c (GC_dump_regions, GC_allochblk_nth): Cast pointers to
word type in relational (less-greater) comparisons.
* alloc.c (GC_add_to_heap, GC_print_heap_sects, GC_expand_hp_inner):
Likewise.
* backgraph.c (ensure_struct, add_back_edges): Likewise.
* blacklst.c (GC_number_stack_black_listed): Likewise.
* checksums.c (GC_checksum, GC_check_dirty): Likewise.
* darwin_stop_world.c (GC_push_all_stacks): Likewise.
* dbg_mlc.c (GC_get_back_ptr_info, GC_print_smashed_obj,
GC_check_heap_block): Likewise.
* dyn_load.c (sort_heap_sects, GC_register_map_entries,
GC_register_dynlib_callback,
GC_register_dynamic_libraries_dl_iterate_phdr,
GC_register_dynamic_libraries, GC_cond_add_roots): Likewise.
* finalize.c (GC_ignore_self_finalize_mark_proc): Likewise.
* headers.c (GC_scratch_alloc, GC_install_counts, GC_remove_counts):
Likewise.
* include/private/gc_pmark.h (PUSH_OBJ, PUsH_CONTENTS_HDR,
GC_PUSH_ONE_STACK, GC_PUSH_ONE_HEAP, GC_mark_stack_empty): Likewise.
* include/private/gc_priv.h (MAKE_COOLER, COOLER_THAN): Likewise.
* mach_dep.c (GC_with_callee_saves_pushed): Likewise.
* malloc.c (calloc, free): Likewise.
* mark.c (GC_mark_some_inner, GC_mark_from, GC_steal_mark_stack,
GC_return_mark_stack, GC_do_local_mark, GC_mark_local, GC_push_all,
GC_push_selected, GC_push_all_eager, GC_push_marked1, GC_push_marked2,
GC_push_marked4, GC_push_marked, GC_push_unconditionally): Likewise.
* mark_rts.c (GC_is_static_root, GC_add_roots_inner,
GC_remove_roots_inner, GC_is_tmp_root, GC_exclude_static_roots_inner,
GC_push_conditional_with_exclusions, GC_push_all_register_sections,
GC_push_all_stack_sections, GC_push_all_stack_partially_eager,
GC_push_all_stack_part_eager_sections, GC_push_current_stack):
Likewise.
* misc.c (GC_clear_stack_inner, GC_clear_stack, GC_base,
GC_call_with_gc_active): Likewise.
* new_hblk.c (GC_build_fl_clear2, GC_build_fl_clear4, GC_build_fl2,
GC_build_fl4, GC_build_fl): Likewise.
* os_dep.c (GC_enclosing_mapping, GC_text_mapping, tiny_sbrk,
GC_find_limit_openbsd, GC_skip_hole_openbsd, GC_find_limit_with_bound,
GC_get_main_stack_base, GC_get_stack_base, GC_least_described_address,
GC_register_root_section, GC_register_data_segments, GC_unmap_start,
GC_gww_read_dirty, GC_remove_protection, GC_protect_heap,
GC_unprotect_range, GC_read_dirty, GC_page_was_dirty,
GC_save_callers, GC_print_callers): Likewise.
* pcr_interface.c (GC_enumerate_block): Likewise.
* pthread_support.c (GC_is_thread_tsd_valid,
GC_segment_is_thread_stack, GC_greatest_stack_base_below,
GC_call_with_gc_active): Likewise.
* ptr_chck.c (GC_same_obj, GC_is_valid_displacement, GC_on_stack,
GC_is_visible): Likewise.
* reclaim.c (GC_reclaim_clear, GC_reclaim_uninit,
GC_disclaim_and_reclaim, GC_reclaim_check, GC_start_reclaim):
Likewise.
* tests/test.c (cons): Likewise.
* tools/setjmp_t.c (main): Likewise.
* typd_mlc.c (GC_typed_mark_proc): Likewise.
* win32_threads.c (GC_is_thread_tsd_valid, GC_call_with_gc_active,
GC_push_stack_for, GC_get_next_stack): Likewise.
* extra/msvc_dbg.c (GetDescriptionFromAddress,
GetDescriptionFromStack): Cast pointers to GC_ULONG_PTR in relational
comparisons.
* include/gc.h (GC_DATASTART, GC_DATAEND): Cast pointers to GC_word in
relational comparisons.
* misc.c (GC_init): Remove static assertion on ((ptr_t)-1 > 0) since
no longer required; add the comment.
* pcr_interface.c: Expand tabs to spaces.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* allchblk.c (GC_freehblk): Use GC_log_printf instead of GC_printf
inside "if (GC_print_stats)" branch.
* alloc.c (GC_collect_or_expand): Ditto.
* dyn_load.c (GC_register_dynamic_libraries): Ditto.
* headers.c (GC_scratch_alloc): Ditto.
* os_dep.c (GC_get_maps, GC_remap, PROTECT,
GC_write_fault_handler, GC_dirty_init, GC_mprotect_thread): Ditto.
* alloc.c (min_bytes_allocd): Use GC_log_printf instead of
GC_printf for DEBUG_THREADS output.
* darwin_stop_world.c (GC_stack_range_for, GC_suspend_thread_list,
GC_stop_world, GC_thread_resume, GC_start_world): Ditto.
* pthread_start.c (GC_inner_start_routine): Ditto.
* pthread_stop_world.c (GC_suspend_handler, GC_restart_handler,
GC_push_all_stacks, GC_suspend_all, GC_stop_world,
GC_start_world): Ditto.
* pthread_support.c (GC_mark_thread, GC_get_nprocs,
GC_start_rtn_prepare_thread, pthread_create): Ditto.
* alloc.c (GC_adj_bytes_allocd, GC_maybe_gc, GC_stopped_mark,
GC_finish_collection): Reformat code.
* pthread_stop_world.c (GC_print_sig_mask): Ditto.
* pthread_support.c (GC_thr_init): Ditto.
* checksums.c (GC_update_check_page): Use GC_printf() instead of
GC_err_printf() for error printing.
* checksums.c (GC_check_blocks, GC_check_dirty): Use GC_log_printf
instead of GC_printf for logging purposes.
* dyn_load.c (sys_errlist, sys_nerr, errno): Move declaration of
external variable outside from GC_register_dynamic_libraries.
* dyn_load.c (GC_register_dynamic_libraries): Don't use
sys_errlist value if errno equals to sys_nerr.
* dyn_load.c (GC_register_dynamic_libraries): Use GC_log_printf
instead of GC_printf for DL_VERBOSE output.
* dyn_load.c (GC_dyld_image_add, GC_dyld_image_remove,
GC_init_dyld): Use GC_log_printf instead of GC_printf for
DARWIN_DEBUG output.
* os_dep.c (catch_exception_raise): Use GC_log_printf
instead of GC_printf for DEBUG_EXCEPTION_HANDLING output.
* reclaim.c (GC_print_free_list): Move "n" increment out of
GC_printf() call.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* dbg_mlc.c (GC_make_closure): Fix SEGV in case GC_malloc returns
NULL.
* dbg_mlc.c (GC_debug_register_finalizer,
GC_debug_register_finalizer_no_order,
GC_debug_register_finalizer_unreachable,
GC_debug_register_finalizer_ignore_self): Handle out of memory
case properly (similar to GC_register_finalizer_inner).
* headers.c (GC_install_header): Handle the case when alloc_hdr()
returns NULL.
* os_dep.c (GC_get_maps_len): Defend against missing "maps" file.
* pthread_support.c (GC_mark_thread): Place a dummy return
statement (which uses "id" argument) before the actual use of "id"
as an array index (to suppress a warning produced by some static
code analysis tools).
* win32_threads.c (GC_mark_thread): Ditto.
* pthread_support.c (GC_thr_init): Abort (with the appropriate
message) if out of memory.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* allchblk.c (GC_unmap_old, GC_merge_unmapped, GC_allochblk,
GC_freehblk): Use GC_INNER for the function definition.
* alloc.c (GC_never_stop_func, GC_should_collect,
GC_try_to_collect_inner, GC_collect_a_little_inner,
GC_set_fl_marks, GC_add_to_our_memory, GC_add_to_heap,
GC_expand_hp_inner, GC_collect_or_expand, GC_allocobj): Ditto.
* backgraph.c (GC_build_back_graph, GC_traverse_back_graph):
Ditto.
* blacklst.c (GC_default_print_heap_obj_proc, GC_bl_init,
GC_promote_black_lists, GC_unpromote_black_lists,
GC_add_to_black_list_normal, GC_add_to_black_list_stack,
GC_is_black_listed): Ditto.
* darwin_stop_world.c (GC_push_all_stacks, GC_push_all_stacks,
GC_stop_init, GC_stop_world, GC_start_world): Ditto.
* dbg_mlc.c (GC_has_other_debug_info, GC_store_back_pointer,
GC_marked_for_finalization, GC_generate_random_backtrace_no_gc,
GC_store_debug_info, GC_start_debugging,
GC_debug_generic_malloc_inner,
GC_debug_generic_malloc_inner_ignore_off_page,
GC_debug_malloc_uncollectable, GC_debug_free_inner): Ditto.
* dyn_load.c (GC_register_dynamic_libraries,
GC_register_main_static_data, GC_init_dyld): Ditto.
* finalize.c (GC_push_finalizer_structures, GC_finalize,
GC_notify_or_invoke_finalizers, GC_print_finalization_stats):
Ditto.
* gcj_mlc.c (GC_core_gcj_malloc): Ditto.
* headers.c (GC_find_header, GC_header_cache_miss,
GC_scratch_alloc, GC_init_headers, GC_install_header,
GC_install_counts, GC_remove_header, GC_remove_counts,
GC_next_used_block, GC_prev_block): Ditto.
* mach_dep.c (GC_with_callee_saves_pushed): Ditto.
* malloc.c (GC_collect_or_expand, GC_alloc_large,
GC_generic_malloc_inner, GC_generic_malloc_inner_ignore_off_page,
GC_core_malloc_atomic, GC_core_malloc, GC_free_inner): Ditto.
* mallocx.c (GC_generic_malloc_ignore_off_page): Ditto.
* mark.c (GC_collection_in_progress, GC_clear_hdr_marks,
GC_set_hdr_marks, GC_set_mark_bit, GC_clear_mark_bit,
GC_clear_marks, GC_initiate_gc, GC_mark_some,
GC_mark_stack_empty, GC_invalidate_mark_state,
GC_signal_mark_stack_overflow, GC_mark_from, GC_help_marker,
GC_mark_init, GC_push_all, GC_push_conditional,
GC_mark_and_push_stack, GC_push_all_eager, GC_push_all_stack):
Ditto.
* mark_rts.c (GC_is_static_root, GC_roots_present, GC_approx_sp,
GC_exclude_static_roots_inner, GC_push_all_register_frames,
GC_push_all_stack_frames, GC_cond_register_dynamic_libraries,
GC_push_roots): Ditto.
* misc.c (GC_extend_size_map, GC_clear_stack, GC_err_write):
Ditto.
* new_hblk.c (GC_build_fl, GC_new_hblk): Ditto.
* obj_map.c (GC_register_displacement_inner, GC_add_map_entry,
GC_initialize_offsets): Ditto.
* os_dep.c (GC_get_maps, GC_parse_map_entry, GC_text_mapping,
GC_init_linux_data_start, GC_init_netbsd_elf, GC_setpagesize,
GC_set_and_save_fault_handler, GC_setup_temporary_fault_handler,
GC_reset_fault_handler, GC_get_register_stack_base, GC_init_win32,
GC_add_current_malloc_heap, GC_is_heap_base, GC_unmap, GC_remap,
GC_unmap_gap, GC_push_all_stacks, GC_gww_dirty_init,
GC_dirty_init, GC_read_dirty, GC_page_was_dirty,
GC_page_was_ever_dirty, GC_remove_protection,
GC_write_fault_handler, GC_mprotect_stop, GC_mprotect_resume,
GC_save_callers, GC_print_callers): Ditto.
* pthread_stop_world.c (GC_push_all_stacks, GC_stop_world,
GC_start_world, GC_stop_init): Ditto.
* pthread_support.c (GC_mark_thread_local_free_lists,
GC_lookup_thread, GC_reset_finalizer_nested,
GC_check_finalizer_nested, GC_segment_is_thread_stack,
GC_greatest_stack_base_below, GC_thr_init, GC_init_parallel,
GC_do_blocking_inner, GC_lock, GC_acquire_mark_lock,
GC_release_mark_lock, GC_wait_for_reclaim, GC_notify_all_builder,
GC_wait_marker, GC_notify_all_marker): Ditto.
* reclaim.c (GC_print_all_errors, GC_block_empty,
GC_reclaim_generic, GC_start_reclaim, GC_continue_reclaim,
GC_reclaim_all): Ditto.
* thread_local_alloc.c (GC_init_thread_local,
GC_destroy_thread_local, GC_mark_thread_local_fls_for): Ditto.
* win32_threads.c (GC_reset_finalizer_nested,
GC_check_finalizer_nested, GC_do_blocking_inner, GC_stop_world,
GC_start_world, GC_push_all_stacks, GC_get_next_stack,
GC_acquire_mark_lock, GC_release_mark_lock, GC_wait_for_reclaim,
GC_notify_all_builder, GC_wait_marker, GC_notify_all_marker,
GC_thr_init, GC_init_parallel, GC_lock,
GC_mark_thread_local_free_lists): Ditto.
* alloc.c (GC_add_current_malloc_heap, GC_build_back_graph,
GC_traverse_back_graph): Use GC_INNER for the function prototype.
* darwin_stop_world.c (GC_mprotect_stop, GC_mprotect_resume):
Ditto.
* dbg_mlc.c (GC_default_print_heap_obj_proc): Ditto.
* dyn_load.c (GC_parse_map_entry, GC_get_maps,
GC_segment_is_thread_stack, GC_roots_present, GC_is_heap_base,
GC_get_next_stack): Ditto.
* finalize.c (GC_reset_finalizer_nested,
GC_check_finalizer_nested): Ditto.
* gcj_mlc.c (GC_start_debugging): Ditto.
* include/private/dbg_mlc.h (GC_save_callers, GC_print_callers,
GC_has_other_debug_info, GC_store_debug_info): Ditto.
* include/private/gc_hdrs.h (GC_header_cache_miss): Ditto.
* include/private/gc_locks.h (GC_lock): Ditto.
* include/private/gc_pmark.h (GC_signal_mark_stack_overflow,
GC_mark_from): Ditto.
* include/private/pthread_support.h (GC_lookup_thread,
GC_stop_init): Ditto.
* include/private/thread_local_alloc.h (GC_init_thread_local,
GC_destroy_thread_local, GC_mark_thread_local_fls_for): Ditto.
* malloc.c (GC_extend_size_map, GC_text_mapping): Ditto.
* mark.c (GC_page_was_ever_dirty): Ditto.
* mark_rts.c (GC_mark_thread_local_free_lists): Ditto.
* misc.c (GC_register_main_static_data, GC_init_win32,
GC_setpagesize, GC_init_linux_data_start,
GC_set_and_save_fault_handler, GC_init_dyld, GC_init_netbsd_elf,
GC_do_blocking_inner): Ditto.
* os_dep.c (GC_greatest_stack_base_below): Ditto.
* win32_threads.c (GC_write_fault_handler, GC_gww_dirty_init):
Ditto.
* include/private/gc_priv.h: Ditto (for most prototypes).
* include/private/gc_priv.h (GC_INNER): Update the comment.
* doc/README.macros (GC_DLL): Update.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* allchblk.c (DEBUG): Remove macro (since unused).
* allchblk.c: Include private/gc_priv.h before other includes and
definitions.
* alloc.c: Ditto.
* gc_dlopen.c: Ditto.
* headers.c: Ditto.
* mallocx.c: Ditto.
* mark_rts.c: Ditto.
* new_hblk.c: Ditto.
* reclaim.c: Ditto.
* mark.c: Include private/gc_pmark.h before other includes.
* misc.c: Ditto.
* dyn_load.c (_GNU_SOURCE): Move the definition to gc_priv.h.
* pthread_support.c (_USING_POSIX4A_DRAFT10): Ditto.
* pthread_support.c (_POSIX4A_DRAFT10_SOURCE): Remove (since
already defined in gc_config_macros.h).
* dyn_load.c (GC_init_dyld): Remove parameter cast for
_dyld_register_func_for_add_image() and
_dyld_register_func_for_remove_image(); add the comment about
possible warnings; add FIXME for the deprecated
_dyld_bind_fully_image_containing_address().
* include/private/gc_priv.h: Include gc.h before the standard
headers inclusion.
* tests/test.c: Ditto.
* include/private/gcconfig.h (DebugBreak): Update the comment.
* typd_mlc.c (ED_INITIAL_SIZE): Remove ';'.
* alloc.c: Reformat the code (partly adjust indentation).
* backgraph.c: Ditto.
* blacklst.c: Ditto.
* checksums.c: Ditto.
* finalize.c: Ditto.
* gcj_mlc.c: Ditto.
* mach_dep.c: Ditto.
* mark_rts.c: Ditto.
* obj_map.c: Ditto.
* os_dep.c: Ditto.
* ptr_chck.c: Ditto.
* stubborn.c: Ditto.
* thread_local_alloc.c: Ditto.
* typd_mlc.c: Ditto.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* backgraph.c (GC_quiet): Remove the declaration (not needed
anymore since gc_priv.h is always included).
* checksums.c (GC_quiet): Ditto.
* gcj_mlc.c (GC_quiet): Ditto.
* headers.c (GC_hdr_cache_hits, GC_hdr_cache_misses): Add the
comment.
* include/private/gc_hdrs.h (GC_hdr_cache_hits,
GC_hdr_cache_misses): Ditto.
* mark.c (GC_first_nonempty): Make the volatile variable STATIC.
* pthread_stop_world.c (GC_stop_count, GC_world_is_stopped):
Ditto.
* win32_threads.c (GC_please_stop, GC_max_thread_index,
GC_mark_mutex_waitcnt): Ditto.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* alloc.c (GC_copyright): Define as const.
* alloc.c (GC_collect_at_heapsize): Replace "static" with "STATIC"
(since the name starts with "GC_" prefix).
* dbg_mlc.c (GC_describe_type_fns): Ditto.
* dyn_load.c (GC_FirstDLOpenedLinkMap,
GC_register_dynlib_callback, GC_dyld_sections,
GC_dyld_name_for_hdr, GC_dyld_image_add, GC_dyld_image_remove):
Ditto.
* malloc.c (GC_libpthread_start, GC_libpthread_end,
GC_libld_start, GC_libld_end): Ditto.
* mark_rts.c (GC_remove_root_at_pos, GC_rebuild_root_index):
Ditto.
* os_dep.c (GC_gww_read_dirty, GC_gww_page_was_dirty,
GC_gww_page_was_ever_dirty, GC_mprotect_thread_notify,
GC_mprotect_thread_reply, GC_mprotect_thread, GC_darwin_sigbus,
GC_forward_exception): Ditto.
* pthread_support.c (GC_syms_initialized): Ditto.
* typd_mlc.c (GC_push_typed_structures_proc): Ditto.
* win32_threads.c (GC_win32_dll_threads,
GC_register_my_thread_inner, GC_lookup_pthread, GC_get_stack_min,
GC_waitForSingleObjectInfinite): Ditto.
* darwin_stop_world.c (GC_use_mach_handler_thread,
GC_use_mach_handler_thread, GC_mach_threads_count): Replace
"static" with "STATIC" and add zero initializer.
* os_dep.c (GC_task_self, GC_ports, GC_mprotect_state,
GC_sigbus_count): Ditto.
* headers.c (free_hdr): Replace "static" with GC_INLINE.
* misc.c (GC_tmp): Rename static variable to fwrite_gc_res.
* os_dep.c (memory): Rename static variable to ecos_gc_memory.
* os_dep.c (async_set_pht_entry_from_index): Make static (for
MPROTECT_VDB case).
* pthread_support.c (GC_real_pthread_create,
GC_real_pthread_sigmask, GC_real_pthread_join,
GC_real_pthread_detach, GC_init_real_syms): Use REAL_FUNC() macro
for static GC_real_XXX symbols.
* win32_threads.c (GC_may_be_in_stack): Remove "GC_" prefix.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* ChangeLog: Remove trailing spaces at EOLn; insert blank lines
where missed.
* doc/README: Expand all tabs to spaces; remove trailing spaces at
EOLn; remove multiple trailing blank lines.
* doc/README.autoconf: Ditto.
* doc/README.DGUX386: Ditto.
* doc/README.environment: Ditto.
* doc/README.macros: Ditto.
* doc/README.win32: Ditto.
* tests/test.c: Ditto.
* tests/test_cpp.cc: Ditto.
* backgraph.c: Ditto.
* blacklst.c: Ditto.
* checksums.c: Ditto.
* darwin_stop_world.c: Ditto.
* dbg_mlc.c: Ditto.
* dyn_load.c: Ditto.
* finalize.c: Ditto.
* gc_dlopen.c: Ditto.
* gcj_mlc.c: Ditto.
* headers.c: Ditto.
* mach_dep.c: Ditto.
* malloc.c: Ditto.
* mallocx.c: Ditto.
* new_hblk.c: Ditto.
* obj_map.c: Ditto.
* ptr_chck.c: Ditto.
* real_malloc.c: Ditto.
* reclaim.c: Ditto.
* stubborn.c: Ditto.
* thread_local_alloc.c: Ditto.
* typd_mlc.c: Ditto.
* gc_cpp.cc: Ditto.
* include/gc_allocator.h: Ditto.
* include/gc_backptr.h: Ditto.
* include/gc_config_macros.h: Ditto.
* include/gc_cpp.h: Ditto.
* include/gc_gcj.h: Ditto.
* include/gc_inline.h: Ditto.
* include/gc_mark.h: Ditto.
* include/gc_pthread_redirects.h: Ditto.
* include/gc_typed.h: Ditto.
* include/gc_version.h: Ditto.
* include/javaxfc.h: Ditto.
* include/new_gc_alloc.h: Ditto.
* include/private/darwin_semaphore.h: Ditto.
* include/private/dbg_mlc.h: Ditto.
* include/private/gc_hdrs.h: Ditto.
* include/private/gc_locks.h: Ditto.
* include/private/gc_pmark.h: Ditto.
* include/private/gcconfig.h: Ditto.
* include/private/pthread_support.h: Ditto.
* include/private/thread_local_alloc.h: Ditto.
* darwin_stop_world.c: Add copyright header.
* include/gc_backptr.h: Ditto.
* include/gc_config_macros.h: Ditto.
* include/gc_pthread_redirects.h: Ditto.
* include/gc_version.h: Ditto.
* include/javaxfc.h: Ditto.
* include/private/darwin_semaphore.h: Ditto.
* include/private/pthread_support.h: Ditto.
* gc_cpp.cc: Make copyright header uniform across the package.
* include/gc_cpp.h: Ditto.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* mark.c: (GC_push_next_marked, GC_push_next_marked_dirty,
GC_push_next_marked_uncollectable): Never invoke GC_push_marked
on free hblk.
* headers.c: Test COUNT_HDR_CACHE_HITS not USE_HDR_CACHE.
(GC_header_cache_miss): Always blacklist pointers for free
hblks. Add assertion and comment.
* pthread_support.c (GC_register_my_thread): Fix #if indentation.
* include/private/gc_hdrs.h: USE_HDR_CACHE is no longer tested.
Delete it.
* include/private/gc_pmark.h: (PUSH_OBJ): Add assertion.
2008-08-21 Hans Boehm <Hans.Boehm@hp.com>
* alloc.c, include/gc_mark.h, Makefile.direct: Improve comments.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ivan's description of the patch follows. Note that a few pieces like
the GC_malloc(0) patch, were not applied since an alternate had been
previously applied. A few differed stylistically from the rest of
the code (mostly casts to void * instead of target type),
or were classified as too minor to bother. Note that
all of Ivan's static declarations which did not correct outright
naming bugs (as a few did), where replaced by STATIC, which is
ignored by default.
- minor bug fixing (for FreeBSD, for THREAD_LOCAL_ALLOC and for
GC_malloc(0));
- addition of missing getter/setter functions for public variables
(may be useful if compiled as Win32 DLL);
- addition of missing GC_API for some exported functions;
- addition of missing "static" declarator for internal functions
and variables (where possible);
- replacement of all remaining K&R-style definitions with ANSI
C ones (__STDC__ macro is not used anymore);
- addition of some Win32 macro definitions (that may be missing in
the standard headers supplied with a compiler) for GWW_VDB mode;
- elimination of most compiler warnings (except for
"uninitialized data" warning);
- several typos correction;
- missing parenthesis addition in macros in some header files of
"libatomic_ops" module.
My highlights based on reading the patch:
* allchblk.c: Remove GC_freehblk_ptr decl.
Make free_list_index_of() static.
* include/gc.h: Use __int64 on win64, define GC_oom_func,
GC_finalizer_notifier_proc, GC_finalizer_notifier_proc,
add getter and setters: GC_get_gc_no, GC_get_parallel,
GC_set_oom_fn, GC_set_finalize_on_demand,
GC_set_java_finalization, GC_set_dont_expand,
GC_set_no_dls, GC_set_max_retries, GC_set_dont_precollect,
GC_set_finalizer_notifier. Always define GC_win32_free_heap.
gc_config_macros.h: Define _REENTRANT after processing
GC_THREADS.
* include/gc_cpp.h: Improve GC_PLACEMENT_DELETE test,
handling of operator new[] for old Windows compilers.
* include/gc_inline.h (GC_MALLOC_FAST_GRANS): Add parentheses
around arguments.
* dbg_mlc.c, malloc.c, misc.c: Add many GC_API specs.
* mark.c (GC_mark_and_push_stack): Fix source argument for
blacklist printing.
* misc.c: Fix log file naming based on environment variable
for Windows. Make GC_set_warn_proc and GC_set_free_space_divisor
just return current value with 0 argument. Add DONT_USER_USER32_DLL.
Add various getters and setters as in gc.h.
* os_dep.c: Remove no longer used GC_disable/enable_signals
implementations. (GC_get_stack_base): Add pthread_attr_destroy
call. No longer set GC_old_bus_handler in DARWIN workaround.
* pthread_support.c: GC_register_my_thread must also
call GC_init_thread_local.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* alloc.c, backgraph.c, headers.c, include/private/gc_priv.h:
Maintain GC_our_memory and GC_n_memory.
* dbg_mlc.c (GC_print_smashed_obj): Improve message.
(GC_print_all_smashed_proc): Pass client object address instead of
base.
* dyn_load.c (sort_heap_sects): New. (GC_register_map_entries):
Register sections that are contiguous and merged with our heap.
* malloc.c, os_dep.c (GC_text_mapping): Check for just base name
of libraries.
* malloc.c (calloc): Check for special callers even with
USE_PROC_FOR_LIBRARIES. Move assertion. Add rudimentary
malloc/free tracing.
* misc.c: No longer call GC_init_lib_bounds explicitly.
* thread_local_alloc.c (GC_malloc, GC_malloc_atomic): Always
initialize on demand.
* tests/test.c: Call GC_INIT only when required.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Makefile.am, Makefile.direct: Add NT_X64_STATIC_THREADS_MAKEFILE.
* Makefile.in: Regenerate.
* NT_X64_STATIC_THREADS_MAKEFILE: Fix warning flags.
* allochblk.c, alloc.c, blacklst.c, dbg_malc.c, dyn_load.c,
finalize.c, headers.c, mach_dep.c, malloc.c, mark.c, misc.c,
obj_map.c, os_dep.c, ptr_chck.c, reclaim.c, typd_mlc.c,
win32_threads.c, cord/de_win.c, include/gc_mark.h,
include/private/gc_hdrs.h, include/private/gc_pmark.h,
include/private/gc_priv.h, tests/test_cpp.cc:
Replace old style function declarations. Clean up integral types.
Remove register declarations. The change in malloc.c and the
"int descr" declaration in mark.c are the most likely to have
been real bugs outside of win64.
* msvc_dbg.c: Disable on win64.
* win32_threads.c: Add AMD64 support.
* include/gc.h: no backtrace on AMD64 for now.
|
| |
|
| |
|
| |
|
| |
|