loader: Add support for realloc using the app allocation callbacks.
diff --git a/loader/loader.c b/loader/loader.c
index 11eda89..e429b0f 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -146,6 +146,33 @@
     free(pMem);
 }
 
+void* loader_heap_realloc(
+    struct loader_instance     *instance,
+    void                       *pMem,
+    size_t                      orig_size,
+    size_t                      size,
+    VkSystemAllocType           alloc_type)
+{
+    if (pMem == NULL  || orig_size == 0)
+        return loader_heap_alloc(instance, size, alloc_type);
+    if (size == 0) {
+        loader_heap_free(instance, pMem);
+        return NULL;
+    }
+    if (instance && instance->alloc_callbacks.pfnAlloc) {
+        if (size <= orig_size) {
+            memset(((uint8_t *)pMem) + size,  0, orig_size - size);
+            return pMem;
+        }
+        void *new_ptr = instance->alloc_callbacks.pfnAlloc(instance->alloc_callbacks.pUserData, size, 4, alloc_type);
+        if (!new_ptr)
+            return NULL;
+        memcpy(new_ptr, pMem, orig_size);
+        instance->alloc_callbacks.pfnFree(instance->alloc_callbacks.pUserData, pMem);
+    }
+    return realloc(pMem, size);
+}
+
 static void loader_log(VkFlags msg_type, int32_t msg_code,
     const char *format, ...)
 {