summaryrefslogtreecommitdiff
path: root/malloc.c
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2019-09-11 01:11:04 +0300
committerIvan Maidanski <ivmai@mail.ru>2019-09-11 01:11:04 +0300
commita20818be9ec660588af325d82e515ebb75bd9905 (patch)
treecf0766e19fa5ee4380f2236ab4bf088b7cd5d330 /malloc.c
parentfe3a50824e878995999462843aff679d52e9f61b (diff)
downloadbdwgc-a20818be9ec660588af325d82e515ebb75bd9905.tar.gz
Workaround 'argument to function is always 1' cppcheck false positives
* allchblk.c (GC_print_hblkfreelist): Replace "while(p!=0)" with "while(p)"; add a marker that the change is for cppcheck. * allchblk.c (GC_free_block_ending_at, GC_add_to_fl, GC_split_block, GC_allochblk_nth, GC_freehblk): Replace "if(p!=0)" with "if(p)". * alloc.c (GC_set_fl_marks): Likewise. * extra/MacOS.c (GC_MacFreeTemporaryMemory): Likewise. * mallocx.c (GC_generic_malloc_many): Likewise. * allchblk.c (GC_allochblk_nth): Replace "if(0==p)" with "if(p){}else". * malloc.c (GC_free): Likewise. * malloc.c (GC_generic_malloc_uncollectable): Replace "if(0==p)return 0;<code>;return p;" with "if(p){<code>}return p;". * mallocx.c (GC_generic_malloc_many): Replace "p+=v;while((p2=*p)!=0)" with "for(p+=v;(p2=*p)!=0;)". * reclaim.c (GC_continue_reclaim, GC_reclaim_all): Likewise.
Diffstat (limited to 'malloc.c')
-rw-r--r--malloc.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/malloc.c b/malloc.c
index f21d11c2..7e35ee8b 100644
--- a/malloc.c
+++ b/malloc.c
@@ -381,14 +381,11 @@ GC_API GC_ATTR_MALLOC void * GC_CALL GC_generic_malloc_uncollectable(
}
GC_ASSERT(0 == op || GC_is_marked(op));
} else {
- hdr * hhdr;
-
- op = GC_generic_malloc(lb, k);
- if (NULL == op)
- return NULL;
+ op = GC_generic_malloc(lb, k);
+ if (op /* != NULL */) { /* CPPCHECK */
+ hdr * hhdr = HDR(op);
GC_ASSERT(((word)op & (HBLKSIZE - 1)) == 0); /* large block */
- hhdr = HDR(op);
/* We don't need the lock here, since we have an undisguised */
/* pointer. We do need to hold the lock while we adjust */
/* mark bits. */
@@ -401,6 +398,7 @@ GC_API GC_ATTR_MALLOC void * GC_CALL GC_generic_malloc_uncollectable(
# endif
hhdr -> hb_n_marks = 1;
UNLOCK();
+ }
}
return op;
}
@@ -564,8 +562,13 @@ GC_API void GC_CALL GC_free(void * p)
struct obj_kind * ok;
DCL_LOCK_STATE;
- if (p == 0) return;
+ if (p /* != NULL */) {
+ /* CPPCHECK */
+ } else {
/* Required by ANSI. It's not my fault ... */
+ return;
+ }
+
# ifdef LOG_ALLOCS
GC_log_printf("GC_free(%p) after GC #%lu\n",
p, (unsigned long)GC_gc_no);