#ifdef MYMALLOC
# define Perl_safesysmalloc_size(where) Perl_malloced_size(where)
#else
-# ifdef HAS_MALLOC_SIZE
+# ifdef HAS_MALLOC_SIZE
+# ifdef PERL_TRACK_MEMPOOL
# define Perl_safesysmalloc_size(where) \
(malloc_size(((char *)(where)) - sTHX) - sTHX)
-# endif
-# ifdef HAS_MALLOC_GOOD_SIZE
+# else
+# define Perl_safesysmalloc_size(where) malloc_size(where)
+# endif
+# endif
+# ifdef HAS_MALLOC_GOOD_SIZE
+# ifdef PERL_TRACK_MEMPOOL
# define Perl_malloc_good_size(how_much) \
(malloc_good_size((how_much) + sTHX) - sTHX)
-# else
+# else
+# define Perl_malloc_good_size(how_much) malloc_good_size(how_much)
+# endif
+# else
/* Having this as the identity operation makes some code simpler. */
# define Perl_malloc_good_size(how_much) (how_much)
-# endif
+# endif
#endif
typedef int (CPERLscope(*runops_proc_t)) (pTHX);