mirror of
https://github.com/janet-lang/janet
synced 2024-11-25 09:47:17 +00:00
Add scratch calloc.
This commit is contained in:
parent
ef02dacdb4
commit
acdbf8911c
@ -491,6 +491,16 @@ void *janet_smalloc(size_t size) {
|
|||||||
return (char *)mem + SCRATCH_HDR_SIZE;
|
return (char *)mem + SCRATCH_HDR_SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void *janet_scalloc(size_t nmemb, size_t size) {
|
||||||
|
if (nmemb && size > (size_t)-1/size) {
|
||||||
|
JANET_OUT_OF_MEMORY;
|
||||||
|
}
|
||||||
|
size_t n = nmemb * size;
|
||||||
|
void *p = janet_smalloc(n);
|
||||||
|
memset(p, 0, n);
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
void *janet_srealloc(void *mem, size_t size) {
|
void *janet_srealloc(void *mem, size_t size) {
|
||||||
if (NULL == mem) return janet_smalloc(size);
|
if (NULL == mem) return janet_smalloc(size);
|
||||||
mem = (char *)mem - SCRATCH_HDR_SIZE;
|
mem = (char *)mem - SCRATCH_HDR_SIZE;
|
||||||
|
@ -1355,6 +1355,7 @@ JANET_API void janet_stacktrace(JanetFiber *fiber, Janet err);
|
|||||||
typedef void (*ScratchFinalizer)(void *);
|
typedef void (*ScratchFinalizer)(void *);
|
||||||
JANET_API void *janet_smalloc(size_t size);
|
JANET_API void *janet_smalloc(size_t size);
|
||||||
JANET_API void *janet_srealloc(void *mem, size_t size);
|
JANET_API void *janet_srealloc(void *mem, size_t size);
|
||||||
|
JANET_API void *janet_scalloc(size_t nmemb, size_t size);
|
||||||
JANET_API void janet_sfinalizer(void *mem, ScratchFinalizer finalizer);
|
JANET_API void janet_sfinalizer(void *mem, ScratchFinalizer finalizer);
|
||||||
JANET_API void janet_sfree(void *mem);
|
JANET_API void janet_sfree(void *mem);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user