diff options
author | Ivan Maidanski <ivmai@mail.ru> | 2016-10-04 23:27:53 +0300 |
---|---|---|
committer | Ivan Maidanski <ivmai@mail.ru> | 2016-10-04 23:27:53 +0300 |
commit | 03bb5fb61138482085be2330c4da9491a081ec52 (patch) | |
tree | 35e44a0858e5532f68b7609ced2e3bc14f865558 /malloc.c | |
parent | e248d685833a498e7dc0938bca47f08dfa611cd5 (diff) |
Eliminate more 'scope of variable can be reduced' cppcheck style warnings
* 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.
Diffstat (limited to 'malloc.c')
-rw-r--r-- | malloc.c | 20 |
1 files changed, 11 insertions, 9 deletions
@@ -239,15 +239,14 @@ GC_API GC_ATTR_MALLOC void * GC_CALL GC_generic_malloc(size_t lb, int k) GC_API GC_ATTR_MALLOC void * GC_CALL GC_malloc_kind_global(size_t lb, int k) { - void *op; - void **opp; - size_t lg; - DCL_LOCK_STATE; - GC_ASSERT(k < MAXOBJKINDS); if (SMALL_OBJ(lb)) { + void *op; + void **opp; + size_t lg = GC_size_map[lb]; + DCL_LOCK_STATE; + GC_DBG_COLLECT_AT_MALLOC(lb); - lg = GC_size_map[lb]; LOCK(); opp = &GC_obj_kinds[k].ok_freelist[lg]; op = *opp; @@ -295,12 +294,13 @@ GC_API GC_ATTR_MALLOC void * GC_CALL GC_generic_malloc_uncollectable( size_t lb, int k) { void *op; - void **opp; - size_t lg; DCL_LOCK_STATE; GC_ASSERT(k < MAXOBJKINDS); if (SMALL_OBJ(lb)) { + void **opp; + size_t lg; + GC_DBG_COLLECT_AT_MALLOC(lb); if (EXTRA_BYTES != 0 && lb != 0) lb--; /* We don't need the extra byte, since this won't be */ @@ -493,7 +493,6 @@ GC_API void GC_CALL GC_free(void * p) hdr *hhdr; size_t sz; /* In bytes */ size_t ngranules; /* sz in granules */ - void **flh; int knd; struct obj_kind * ok; DCL_LOCK_STATE; @@ -521,6 +520,8 @@ GC_API void GC_CALL GC_free(void * p) knd = hhdr -> hb_obj_kind; ok = &GC_obj_kinds[knd]; if (EXPECT(ngranules <= MAXOBJGRANULES, TRUE)) { + void **flh; + LOCK(); GC_bytes_freed += sz; if (IS_UNCOLLECTABLE(knd)) GC_non_gc_bytes -= sz; @@ -536,6 +537,7 @@ GC_API void GC_CALL GC_free(void * p) UNLOCK(); } else { size_t nblocks = OBJ_SZ_TO_BLOCKS(sz); + LOCK(); GC_bytes_freed += sz; if (IS_UNCOLLECTABLE(knd)) GC_non_gc_bytes -= sz; |