-/** Non-snapshotting malloc for our use. */
-void *MYMALLOC(size_t size) {
-#if USE_MPROTECT_SNAPSHOT
- static void *(*mallocp)(size_t size);
- char *error;
- void *ptr;
-
- /* get address of libc malloc */
- if (!mallocp) {
- mallocp = ( void * ( * )( size_t ) )dlsym(RTLD_NEXT, "malloc");
- if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
- exit(EXIT_FAILURE);
- }
- }
- ptr = mallocp(size);
- return ptr;
-#else
- if( !sTheRecord ){
- createSharedLibrary();
- }
- if( NULL == sStaticSpace )
- sStaticSpace = create_mspace_with_base( ( void * )( sTheRecord->mSharedMemoryBase ), SHARED_MEMORY_DEFAULT -sizeof( struct Snapshot ), 1 );
- return mspace_malloc( sStaticSpace, size );
-#endif
+/** Non-snapshotting calloc for our use. */
+void *model_calloc(size_t count, size_t size)
+{
+ if (!sStaticSpace)
+ sStaticSpace = create_shared_mspace();
+ return mspace_calloc(sStaticSpace, count, size);