@@ -904,9 +904,23 @@ int wolfSSL_GetMemStats(WOLFSSL_HEAP* heap, WOLFSSL_MEM_STATS* stats)
904904 * NOT thread safe, should be set once before any expected XMALLOC XFREE calls
905905 */
906906static void * globalHeapHint = NULL ;
907- void wolfSSL_SetGlobalHeapHint (void * heap )
907+
908+
909+ /* Used to set a new global heap hint. Returns a pointer to the current global
910+ * heap hint before being set. */
911+ void * wolfSSL_SetGlobalHeapHint (void * heap )
908912{
913+ void * oldHint = globalHeapHint ;
914+
909915 globalHeapHint = heap ;
916+ return oldHint ;
917+ }
918+
919+
920+ /* returns a pointer to the current global heap hint */
921+ void * wolfSSL_GetGlobalHeapHint ()
922+ {
923+ return globalHeapHint ;
910924}
911925
912926
@@ -967,6 +981,9 @@ void* wolfSSL_Malloc(size_t size, void* heap, int type)
967981
968982 if (hint == NULL ) {
969983 hint = (WOLFSSL_HEAP_HINT * )globalHeapHint ;
984+ #ifdef WOLFSSL_DEBUG_MEMORY
985+ fprintf (stderr , "(Using global heap hint %p) " , hint );
986+ #endif
970987 }
971988 mem = hint -> memory ;
972989
@@ -1119,6 +1136,9 @@ void wolfSSL_Free(void *ptr, void* heap, int type)
11191136
11201137 if (hint == NULL ) {
11211138 hint = (WOLFSSL_HEAP_HINT * )globalHeapHint ;
1139+ #ifdef WOLFSSL_DEBUG_MEMORY
1140+ fprintf (stderr , "(Using global heap hint %p) " , hint );
1141+ #endif
11221142 }
11231143 mem = hint -> memory ;
11241144
@@ -1219,6 +1239,9 @@ void* wolfSSL_Realloc(void *ptr, size_t size, void* heap, int type)
12191239
12201240 if (hint == NULL ) {
12211241 hint = (WOLFSSL_HEAP_HINT * )globalHeapHint ;
1242+ #ifdef WOLFSSL_DEBUG_MEMORY
1243+ fprintf (stderr , "(Using global heap hint %p) " , hint );
1244+ #endif
12221245 }
12231246 mem = hint -> memory ;
12241247
0 commit comments