Make HRealloc() check the return the same way HMalloc() does

git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@3230 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
avolkov
2009-10-19 10:09:33 +00:00
parent 20ae0eb3fb
commit 621e8c5a7f
+21 -5
View File
@@ -47,7 +47,8 @@ HMalloc (int size)
if (size < 0) if (size < 0)
{ {
log_add (log_Fatal, "Fatal Error: Request for negative amount of memory %d!", size); log_add (log_Fatal, "HMalloc() FATAL: "
"request for negative amount of memory %d!", size);
fflush (stderr); fflush (stderr);
explode (); explode ();
} }
@@ -55,7 +56,7 @@ HMalloc (int size)
p = malloc (size); p = malloc (size);
if (p == NULL) if (p == NULL)
{ {
log_add (log_Fatal, "Fatal Error: HMalloc(): out of memory."); log_add (log_Fatal, "HMalloc() FATAL: out of memory.");
fflush (stderr); fflush (stderr);
explode (); explode ();
} }
@@ -85,7 +86,22 @@ HCalloc (int size)
void * void *
HRealloc (void *p, int size) HRealloc (void *p, int size)
{ {
// XXX: We assume throughout that HRealloc returns a valid pointer. if (size < 0)
// Checks similar to HMalloc are needed here. {
return realloc (p, size); log_add (log_Fatal, "HRealloc() FATAL: "
"request for negative amount of memory %d!", size);
fflush (stderr);
explode ();
}
fprintf (stderr, "HRealloc(): reallocing %p to %d\n", p, size);
p = realloc (p, size);
if (!p && size > 0)
{
log_add (log_Fatal, "HRealloc() FATAL: out of memory.");
fflush (stderr);
explode ();
}
return p;
} }