Add comments to explain checks and aborts, to assist future debugging.

This commit is contained in:
Jason Rumney 2008-12-24 11:37:12 +00:00
parent baae5c2d84
commit 747d9d142f

View 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;