(objc_malloc): Renamed from __objc_xmalloc.
(objc_realloc): Renamed from __objc_realloc. (objc_atomic_malloc): New function. (objc_valloc): New function. (objc_calloc): Renamed from __objc_calloc. (objc_free): New function. From-SVN: r12763
This commit is contained in:
parent
9d46282b6c
commit
79236a0da5
@ -1,7 +1,6 @@
|
||||
/* GNU Objective C Runtime Miscellaneous
|
||||
Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
|
||||
|
||||
Author: Kresten Krab Thorup
|
||||
Copyright (C) 1993, 1994, 1995, 1996 Free Software Foundation, Inc.
|
||||
Contrbuted by Kresten Krab Thorup
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
@ -26,8 +25,9 @@ Boston, MA 02111-1307, USA. */
|
||||
however invalidate any other reasons why the executable file might be
|
||||
covered by the GNU General Public License. */
|
||||
|
||||
#ifdef __alpha__
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifdef __alpha__
|
||||
extern int write (int, const char*, int);
|
||||
extern size_t strlen (const char*);
|
||||
#endif
|
||||
@ -52,29 +52,77 @@ objc_fatal(const char* msg)
|
||||
abort();
|
||||
}
|
||||
|
||||
/*
|
||||
** Standard functions for memory allocation and disposal.
|
||||
** Users should use these functions in their ObjC programs so
|
||||
** that they work properly with garbage collectors as well as
|
||||
** can take advantage of the exception/error handling available.
|
||||
*/
|
||||
|
||||
void *
|
||||
__objc_xmalloc(size_t size)
|
||||
objc_malloc(size_t size)
|
||||
{
|
||||
void* res = (void*) malloc(size);
|
||||
void* res = (void*) (*_objc_malloc)(size);
|
||||
if(!res)
|
||||
objc_fatal("Virtual memory exhausted\n");
|
||||
return res;
|
||||
}
|
||||
|
||||
void *
|
||||
__objc_xrealloc(void* mem, size_t size)
|
||||
objc_atomic_malloc(size_t size)
|
||||
{
|
||||
void* res = (void*) realloc(mem, size);
|
||||
void* res = (void*) (*_objc_atomic_malloc)(size);
|
||||
if(!res)
|
||||
objc_fatal("Virtual memory exhausted\n");
|
||||
return res;
|
||||
}
|
||||
|
||||
void *
|
||||
__objc_xcalloc(size_t nelem, size_t size)
|
||||
objc_valloc(size_t size)
|
||||
{
|
||||
void* res = (void*)calloc(nelem, size);
|
||||
void* res = (void*) (*_objc_valloc)(size);
|
||||
if(!res)
|
||||
objc_fatal("Virtual memory exhausted\n");
|
||||
return res;
|
||||
}
|
||||
|
||||
void *
|
||||
objc_realloc(void *mem, size_t size)
|
||||
{
|
||||
void* res = (void*) (*_objc_realloc)(mem, size);
|
||||
if(!res)
|
||||
objc_fatal("Virtual memory exhausted\n");
|
||||
return res;
|
||||
}
|
||||
|
||||
void *
|
||||
objc_calloc(size_t nelem, size_t size)
|
||||
{
|
||||
void* res = (void*) (*_objc_calloc)(nelem, size);
|
||||
if(!res)
|
||||
objc_fatal("Virtual memory exhausted\n");
|
||||
return res;
|
||||
}
|
||||
|
||||
void
|
||||
objc_free(void *mem)
|
||||
{
|
||||
(*_objc_free)(mem);
|
||||
}
|
||||
|
||||
/*
|
||||
** Hook functions for memory allocation and disposal.
|
||||
** This makes it easy to substitute garbage collection systems
|
||||
** such as Boehm's GC by assigning these function pointers
|
||||
** to the GC's allocation routines. By default these point
|
||||
** to the ANSI standard malloc, realloc, free, etc.
|
||||
**
|
||||
** Users should call the normal objc routines above for
|
||||
** memory allocation and disposal within their programs.
|
||||
*/
|
||||
void *(*_objc_malloc)(size_t) = malloc;
|
||||
void *(*_objc_atomic_malloc)(size_t) = malloc;
|
||||
void *(*_objc_valloc)(size_t) = malloc;
|
||||
void *(*_objc_realloc)(void *, size_t) = realloc;
|
||||
void *(*_objc_calloc)(size_t, size_t) = calloc;
|
||||
void (*_objc_free)(void *) = free;
|
||||
|
Loading…
Reference in New Issue
Block a user