From 091327496dd23b73399fa7b8809c65bcbd03d29e Mon Sep 17 00:00:00 2001 From: Józef Kucia Date: Fri, 16 Jun 2017 11:52:21 +0200 Subject: layers: Fix memory leak in instance destroy_dispatch_table Change-Id: I8152960f30f73a997386aa9bf3561d2e0e8b408d --- layers/vk_layer_table.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'layers/vk_layer_table.cpp') diff --git a/layers/vk_layer_table.cpp b/layers/vk_layer_table.cpp index 7b5a394e..dcf5c47c 100644 --- a/layers/vk_layer_table.cpp +++ b/layers/vk_layer_table.cpp @@ -68,8 +68,8 @@ void destroy_dispatch_table(device_table_map &map, dispatch_key key) { } void destroy_dispatch_table(instance_table_map &map, dispatch_key key) { -#if DISPATCH_MAP_DEBUG instance_table_map::const_iterator it = map.find((void *)key); +#if DISPATCH_MAP_DEBUG if (it != map.end()) { fprintf(stderr, "destroy instance dispatch_table: map: 0x%p, key: 0x%p, table: 0x%p\n", &map, key, it->second); } else { @@ -77,7 +77,10 @@ void destroy_dispatch_table(instance_table_map &map, dispatch_key key) { assert(it != map.end()); } #endif - map.erase(key); + if (it != map.end()) { + delete it->second; + map.erase(it); + } } void destroy_device_dispatch_table(dispatch_key key) { destroy_dispatch_table(tableMap, key); } -- cgit v1.2.3