mirror of
				https://github.com/janet-lang/janet
				synced 2025-10-31 07:33:01 +00:00 
			
		
		
		
	Add scratch calloc.
This commit is contained in:
		| @@ -491,6 +491,16 @@ void *janet_smalloc(size_t 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) { | ||||
|     if (NULL == mem) return janet_smalloc(size); | ||||
|     mem = (char *)mem - SCRATCH_HDR_SIZE; | ||||
|   | ||||
| @@ -1355,6 +1355,7 @@ JANET_API void janet_stacktrace(JanetFiber *fiber, Janet err); | ||||
| typedef void (*ScratchFinalizer)(void *); | ||||
| JANET_API void *janet_smalloc(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_sfree(void *mem); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Andrew Chambers
					Andrew Chambers