]> git.eshelyaron.com Git - emacs.git/commitdiff
Add comments to explain checks and aborts, to assist future debugging.
authorJason Rumney <jasonr@gnu.org>
Wed, 24 Dec 2008 11:37:12 +0000 (11:37 +0000)
committerJason Rumney <jasonr@gnu.org>
Wed, 24 Dec 2008 11:37:12 +0000 (11:37 +0000)
src/ralloc.c

index 61f7aff95f54039a895abd0282ec84a1a58bff5c..a484cb60cfc858f8e216f2d643b41abe771d949a 100644 (file)
@@ -402,6 +402,11 @@ find_bloc (ptr)
 
   while (p != NIL_BLOC)
     {
+      /* Consistency check. Don't return inconsistent blocs.
+        Don't abort here, as callers might be expecting this,  but
+        callers that always expect a bloc to be returned should abort
+        if one isn't to avoid a memory corruption bug that is
+        difficult to track down.  */
       if (p->variable == ptr && p->data == *ptr)
        return p;
 
@@ -981,7 +986,7 @@ r_alloc_free (ptr)
 
   dead_bloc = find_bloc (ptr);
   if (dead_bloc == NIL_BLOC)
-    abort ();
+    abort (); /* Double free? PTR not originally used to allocate?  */
 
   free_bloc (dead_bloc);
   *ptr = 0;
@@ -1025,7 +1030,7 @@ r_re_alloc (ptr, size)
 
   bloc = find_bloc (ptr);
   if (bloc == NIL_BLOC)
-    abort ();
+    abort (); /* Already freed? PTR not originally used to allocate?  */
 
   if (size < bloc->size)
     {
@@ -1246,7 +1251,7 @@ r_alloc_reset_variable (old, new)
     }
 
   if (bloc == NIL_BLOC || bloc->variable != old)
-    abort ();
+    abort (); /* Already freed? OLD not originally used to allocate?  */
 
   /* Update variable to point to the new location.  */
   bloc->variable = new;