loader: Fix DestroyInstance
diff --git a/loader/trampoline.c b/loader/trampoline.c
index 572db27..a616f0f 100644
--- a/loader/trampoline.c
+++ b/loader/trampoline.c
@@ -110,9 +110,16 @@
 
     disp = loader_get_instance_dispatch(instance);
 
-    /* TODO: Need to free memory allocated in trampoline's CreateInstance call */
+    VkResult res = disp->DestroyInstance(instance);
 
-    return disp->DestroyInstance(instance);
+    struct loader_instance *ptr_instance = loader_instance(instance);
+    loader_deactivate_instance_layers(ptr_instance);
+    loader_destroy_ext_list(&ptr_instance->enabled_instance_extensions);
+    loader_destroy_ext_list(&ptr_instance->activated_layer_list);
+
+    free(ptr_instance);
+
+    return res;
 }
 
 LOADER_EXPORT VkResult VKAPI vkEnumeratePhysicalDevices(