diff mbox series

malloc: Resolve compilation failure in NDEBUG mode

Message ID 20170831130210.9520943994318@oldenburg.str.redhat.com
State New
Headers show
Series malloc: Resolve compilation failure in NDEBUG mode | expand

Commit Message

Florian Weimer Aug. 31, 2017, 1:02 p.m. UTC
In _int_free, the locked variable is not used if NDEBUG is defined.

2017-08-31  Florian Weimer  <fweimer@redhat.com>

	* malloc/malloc.c (_int_free): Remove locked variable and related
	asserts.

Comments

Carlos O'Donell Aug. 31, 2017, 1:27 p.m. UTC | #1
On 08/31/2017 08:02 AM, Florian Weimer wrote:
> In _int_free, the locked variable is not used if NDEBUG is defined.
> 
> 2017-08-31  Florian Weimer  <fweimer@redhat.com>
> 
> 	* malloc/malloc.c (_int_free): Remove locked variable and related
> 	asserts.

LGTM.
diff mbox series

Patch

diff --git a/malloc/malloc.c b/malloc/malloc.c
index 768670ccf6..e1159a5bce 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -4106,8 +4106,6 @@  _int_free (mstate av, mchunkptr p, int have_lock)
   mchunkptr bck;               /* misc temp for linking */
   mchunkptr fwd;               /* misc temp for linking */
 
-  int locked = 0;
-
   size = chunksize (p);
 
   /* Little security check which won't hurt performance: the
@@ -4162,19 +4160,14 @@  _int_free (mstate av, mchunkptr p, int have_lock)
 	/* We might not have a lock at this point and concurrent modifications
 	   of system_mem might have let to a false positive.  Redo the test
 	   after getting the lock.  */
-	if (have_lock
-	    || ({ assert (locked == 0);
-		  __libc_lock_lock (av->mutex);
-		  locked = 1;
+	if (!have_lock
+	    || ({ __libc_lock_lock (av->mutex);
 		  chunksize_nomask (chunk_at_offset (p, size)) <= 2 * SIZE_SZ
-		    || chunksize (chunk_at_offset (p, size)) >= av->system_mem;
-	      }))
+		  || chunksize (chunk_at_offset (p, size)) >= av->system_mem;
+	        }))
 	  malloc_printerr ("free(): invalid next size (fast)");
 	if (! have_lock)
-	  {
-	    __libc_lock_unlock (av->mutex);
-	    locked = 0;
-	  }
+	  __libc_lock_unlock (av->mutex);
       }
 
     free_perturb (chunk2mem(p), size - 2 * SIZE_SZ);
@@ -4211,10 +4204,8 @@  _int_free (mstate av, mchunkptr p, int have_lock)
   */
 
   else if (!chunk_is_mmapped(p)) {
-    if (! have_lock) {
+    if (!have_lock)
       __libc_lock_lock (av->mutex);
-      locked = 1;
-    }
 
     nextchunk = chunk_at_offset(p, size);
 
@@ -4328,10 +4319,8 @@  _int_free (mstate av, mchunkptr p, int have_lock)
       }
     }
 
-    if (! have_lock) {
-      assert (locked);
+    if (!have_lock)
       __libc_lock_unlock (av->mutex);
-    }
   }
   /*
     If the chunk was allocated via mmap, release via munmap().