113 |
*/ |
*/ |
114 |
|
|
115 |
void * |
void * |
|
scm_malloc (size_t size) |
|
|
{ |
|
|
void *ptr; |
|
|
|
|
|
if (size == 0) |
|
|
return NULL; |
|
|
|
|
|
SCM_SYSCALL (ptr = malloc (size)); |
|
|
if (ptr) |
|
|
return ptr; |
|
|
|
|
|
scm_i_sweep_all_segments ("malloc"); |
|
|
SCM_SYSCALL (ptr = malloc (size)); |
|
|
if (ptr) |
|
|
return ptr; |
|
|
|
|
|
scm_igc ("malloc"); |
|
|
scm_i_sweep_all_segments ("malloc/gc"); |
|
|
|
|
|
SCM_SYSCALL (ptr = malloc (size)); |
|
|
if (ptr) |
|
|
return ptr; |
|
|
|
|
|
scm_memory_error ("malloc"); |
|
|
} |
|
|
|
|
|
void * |
|
116 |
scm_realloc (void *mem, size_t size) |
scm_realloc (void *mem, size_t size) |
117 |
{ |
{ |
118 |
void *ptr; |
void *ptr; |
137 |
scm_memory_error ("realloc"); |
scm_memory_error ("realloc"); |
138 |
} |
} |
139 |
|
|
140 |
|
void * |
141 |
|
scm_malloc (size_t sz) |
142 |
|
{ |
143 |
|
return scm_realloc (NULL, sz); |
144 |
|
} |
145 |
|
|
146 |
|
|
147 |
char * |
char * |
148 |
scm_strndup (const char *str, size_t n) |
scm_strndup (const char *str, size_t n) |
149 |
{ |
{ |
249 |
} |
} |
250 |
|
|
251 |
void * |
void * |
252 |
|
scm_gc_calloc (size_t size, const char *what) |
253 |
|
{ |
254 |
|
void *ptr = scm_gc_malloc (size, what); |
255 |
|
memset (ptr, 0x0, size); |
256 |
|
return ptr; |
257 |
|
} |
258 |
|
|
259 |
|
|
260 |
|
void * |
261 |
scm_gc_realloc (void *mem, size_t old_size, size_t new_size, const char *what) |
scm_gc_realloc (void *mem, size_t old_size, size_t new_size, const char *what) |
262 |
{ |
{ |
263 |
/* XXX - see scm_gc_malloc. */ |
/* XXX - see scm_gc_malloc. */ |