summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2012-01-18 08:36:33 +0400
committerIvan Maidanski <ivmai@mail.ru>2012-01-18 12:37:04 +0400
commit33dc2ded8886f35b261c4ef3d344eca3d9fe112d (patch)
tree2f6cbcb74edf2d6b2c741fee4985e0638aa9cb6f
parent63fd11df9468ac94373ba74e7bd4a97b9cc4044b (diff)
downloadbdwgc-33dc2ded8886f35b261c4ef3d344eca3d9fe112d.tar.gz
Use EXPECT in malloc result testing for NULL
* gcj_mlc.c (GC_gcj_malloc_ignore_off_page): Use EXPECT to test "op" value for NULL. * malloc.c (GC_generic_malloc_inner, GC_malloc_uncollectable): Likewise. * mallocx.c (GC_generic_malloc_many, GC_posix_memalign): Likewise. * typd_mlc.c (GC_malloc_explicitly_typed, GC_malloc_explicitly_typed_ignore_off_page, GC_calloc_explicitly_typed): Likewise.
-rw-r--r--gcj_mlc.c3
-rw-r--r--malloc.c6
-rw-r--r--mallocx.c6
-rw-r--r--typd_mlc.c9
4 files changed, 16 insertions, 8 deletions
diff --git a/gcj_mlc.c b/gcj_mlc.c
index a7fefd9d..a5f3fe50 100644
--- a/gcj_mlc.c
+++ b/gcj_mlc.c
@@ -247,7 +247,8 @@ GC_API void * GC_CALL GC_gcj_malloc_ignore_off_page(size_t lb,
lg = GC_size_map[lb];
opp = &(GC_gcjobjfreelist[lg]);
LOCK();
- if( (op = *opp) == 0 ) {
+ op = *opp;
+ if (EXPECT(0 == op, FALSE)) {
maybe_finalize();
op = (ptr_t)GENERAL_MALLOC_INNER_IOP(lb, GC_gcj_kind);
if (0 == op) {
diff --git a/malloc.c b/malloc.c
index 75c9e0e4..1400fc32 100644
--- a/malloc.c
+++ b/malloc.c
@@ -109,7 +109,8 @@ GC_INNER void * GC_generic_malloc_inner(size_t lb, int k)
size_t lg = GC_size_map[lb];
void ** opp = &(kind -> ok_freelist[lg]);
- if( (op = *opp) == 0 ) {
+ op = *opp;
+ if (EXPECT(0 == op, FALSE)) {
if (GC_size_map[lb] == 0) {
if (!EXPECT(GC_is_initialized, TRUE)) GC_init();
if (GC_size_map[lb] == 0) GC_extend_size_map(lb);
@@ -278,7 +279,8 @@ GC_API void * GC_CALL GC_malloc_uncollectable(size_t lb)
lg = GC_size_map[lb];
opp = &(GC_uobjfreelist[lg]);
LOCK();
- if( (op = *opp) != 0 ) {
+ op = *opp;
+ if (EXPECT(0 != op, TRUE)) {
*opp = obj_link(op);
obj_link(op) = 0;
GC_bytes_allocd += GRANULES_TO_BYTES(lg);
diff --git a/mallocx.c b/mallocx.c
index 651cbad6..a907df00 100644
--- a/mallocx.c
+++ b/mallocx.c
@@ -281,7 +281,8 @@ GC_API void GC_CALL GC_generic_malloc_many(size_t lb, int k, void **result)
GC_ASSERT(lb != 0 && (lb & (GRANULE_BYTES-1)) == 0);
if (!SMALL_OBJ(lb)) {
op = GC_generic_malloc(lb, k);
- if(0 != op) obj_link(op) = 0;
+ if (EXPECT(0 != op, TRUE))
+ obj_link(op) = 0;
*result = op;
return;
}
@@ -515,7 +516,8 @@ GC_API int GC_CALL GC_posix_memalign(void **memptr, size_t align, size_t lb)
lg = GC_size_map[lb];
opp = &(GC_auobjfreelist[lg]);
LOCK();
- if( (op = *opp) != 0 ) {
+ op = *opp;
+ if (EXPECT(0 != op, TRUE)) {
*opp = obj_link(op);
obj_link(op) = 0;
GC_bytes_allocd += GRANULES_TO_BYTES(lg);
diff --git a/typd_mlc.c b/typd_mlc.c
index aba8e64a..57fabdb7 100644
--- a/typd_mlc.c
+++ b/typd_mlc.c
@@ -594,7 +594,8 @@ GC_API void * GC_CALL GC_malloc_explicitly_typed(size_t lb, GC_descr d)
lg = GC_size_map[lb];
opp = &(GC_eobjfreelist[lg]);
LOCK();
- if( (op = *opp) == 0 ) {
+ op = *opp;
+ if (EXPECT(0 == op, FALSE)) {
UNLOCK();
op = (ptr_t)GENERAL_MALLOC((word)lb, GC_explicit_kind);
if (0 == op) return 0;
@@ -629,7 +630,8 @@ GC_API void * GC_CALL GC_malloc_explicitly_typed_ignore_off_page(size_t lb,
lg = GC_size_map[lb];
opp = &(GC_eobjfreelist[lg]);
LOCK();
- if( (op = *opp) == 0 ) {
+ op = *opp;
+ if (EXPECT(0 == op, FALSE)) {
UNLOCK();
op = (ptr_t)GENERAL_MALLOC_IOP(lb, GC_explicit_kind);
if (0 == op) return 0;
@@ -681,7 +683,8 @@ GC_API void * GC_CALL GC_calloc_explicitly_typed(size_t n, size_t lb,
lg = GC_size_map[lb];
opp = &(GC_arobjfreelist[lg]);
LOCK();
- if( (op = *opp) == 0 ) {
+ op = *opp;
+ if (EXPECT(0 == op, FALSE)) {
UNLOCK();
op = (ptr_t)GENERAL_MALLOC((word)lb, GC_array_kind);
if (0 == op) return(0);