Add comments to explain checks and aborts, to assist future debugging.
This commit is contained in:
parent
baae5c2d84
commit
747d9d142f
1 changed files with 8 additions and 3 deletions
11
src/ralloc.c
11
src/ralloc.c
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue