mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-22 08:26:27 +00:00
(CHECK_ZERO_SIZE): New macro; for making sure we don't pass 0 to
malloc and its friends. (__objc_malloc): Use it. (__objc_valloc): Likewise. (__objc_realloc): Likewise. (__objc_calloc): Likewise. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@618 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
92d1cf0170
commit
5c26bf6a66
1 changed files with 7 additions and 1 deletions
|
@ -1,5 +1,5 @@
|
|||
/* Memory allocation support for Objective-C: easy garbage collection.
|
||||
Copyright (C) 1993,1994 Free Software Foundation, Inc.
|
||||
Copyright (C) 1993,1994, 1995 Free Software Foundation, Inc.
|
||||
|
||||
Written by: R. Andrew McCallum <mccallum@gnu.ai.mit.edu>
|
||||
Date: May 1993
|
||||
|
@ -33,9 +33,12 @@
|
|||
#define valloc malloc
|
||||
#endif
|
||||
|
||||
#define CHECK_ZERO_SIZE(S) if (size == 0) size = 1
|
||||
|
||||
void*
|
||||
__objc_malloc(size_t size)
|
||||
{
|
||||
CHECK_ZERO_SIZE(size);
|
||||
void* res = (void*) malloc(size);
|
||||
if(!res)
|
||||
objc_fatal("Virtual memory exhausted\n");
|
||||
|
@ -45,6 +48,7 @@ __objc_malloc(size_t size)
|
|||
void*
|
||||
__objc_valloc(size_t size)
|
||||
{
|
||||
CHECK_ZERO_SIZE(size);
|
||||
void* res = (void*) valloc(size);
|
||||
if(!res)
|
||||
objc_fatal("Virtual memory exhausted\n");
|
||||
|
@ -54,6 +58,7 @@ __objc_valloc(size_t size)
|
|||
void*
|
||||
__objc_realloc(void* mem, size_t size)
|
||||
{
|
||||
CHECK_ZERO_SIZE(size);
|
||||
void* res = (void*) realloc(mem, size);
|
||||
if(!res)
|
||||
objc_fatal("Virtual memory exhausted\n");
|
||||
|
@ -63,6 +68,7 @@ __objc_realloc(void* mem, size_t size)
|
|||
void*
|
||||
__objc_calloc(size_t nelem, size_t size)
|
||||
{
|
||||
CHECK_ZERO_SIZE(size);
|
||||
void* res = (void*) calloc(nelem, size);
|
||||
if(!res)
|
||||
objc_fatal("Virtual memory exhausted\n");
|
||||
|
|
Loading…
Reference in a new issue