Loading...
src/nano_malloc_common.h libmalloc-474.0.13 libmalloc-646.40.3
--- libmalloc/libmalloc-474.0.13/src/nano_malloc_common.h
+++ libmalloc/libmalloc-646.40.3/src/nano_malloc_common.h
@@ -24,12 +24,20 @@
 #ifndef __NANO_MALLOC_COMMON_H
 #define __NANO_MALLOC_COMMON_H
 
+#include <malloc/_ptrcheck.h>
+__ptrcheck_abi_assume_single()
+
 typedef enum {
 	NANO_NONE	= 0,
 	NANO_V2		= 2,
 } nano_version_t;
 
 // Nano malloc enabled flag
+//
+// Note that this flag indicates whether a "nano-like" configuration, i.e. one
+// that trades memory for CPU and scalability, is enabled, but not literally
+// whether the nano allocator itself is engaged.  Test for nano itself using
+// initial_nano_zone.
 MALLOC_NOEXPORT
 extern nano_version_t _malloc_engaged_nano;
 
@@ -50,7 +58,7 @@
 
 MALLOC_NOEXPORT
 void
-nano_common_init(const char *envp[], const char *apple[], const char *bootargs);
+nano_common_init(const char * __null_terminated * __null_terminated envp, const char * __null_terminated * __null_terminated apple, const char *bootargs);
 
 MALLOC_NOEXPORT
 void
@@ -84,7 +92,7 @@
 
 MALLOC_NOEXPORT
 nano_version_t
-_nano_common_init_pick_mode(const char *envp[], const char *apple[], const char *bootargs, bool space_efficient_enabled);
+_nano_common_init_pick_mode(const char * __null_terminated * __null_terminated envp, const char * __null_terminated * __null_terminated apple, const char *bootargs, bool space_efficient_enabled);
 
 #endif // __NANO_MALLOC_COMMON_H