From b11da8f8b52bc770a3203f7b017aba94a784d845 Mon Sep 17 00:00:00 2001 From: Mark Lobodzinski Date: Tue, 21 Apr 2015 17:15:36 -0600 Subject: layers: Fixed arg selection in object tracker Reordered args were causing object deletions and memory frees to corrupt the object lists. --- vk-layer-generate.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/vk-layer-generate.py b/vk-layer-generate.py index a9204629..fe76533a 100755 --- a/vk-layer-generate.py +++ b/vk-layer-generate.py @@ -1157,15 +1157,21 @@ class ObjectTrackerSubcommand(Subcommand): create_line += ' loader_platform_thread_unlock_mutex(&objLock);\n' if 'DestroyObject' in proto.name: destroy_line = ' loader_platform_thread_lock_mutex(&objLock);\n' - destroy_line += ' ll_destroy_obj(%s);\n' % (param0_name) + destroy_line += ' ll_destroy_obj(%s);\n' % (proto.params[2].name) destroy_line += ' loader_platform_thread_unlock_mutex(&objLock);\n' using_line = '' else: - if 'Destroy' in proto.name or 'Free' in proto.name: + if 'Destroy' in proto.name: destroy_line = ' loader_platform_thread_lock_mutex(&objLock);\n' destroy_line += ' ll_destroy_obj(%s);\n' % (param0_name) destroy_line += ' loader_platform_thread_unlock_mutex(&objLock);\n' using_line = '' + else: + if 'Free' in proto.name: + destroy_line = ' loader_platform_thread_lock_mutex(&objLock);\n' + destroy_line += ' ll_destroy_obj(%s);\n' % (proto.params[1].name) + destroy_line += ' loader_platform_thread_unlock_mutex(&objLock);\n' + using_line = '' if 'DestroyDevice' in proto.name: destroy_line += ' // Report any remaining objects in LL\n objNode *pTrav = pGlobalHead;\n while (pTrav) {\n' destroy_line += ' if (pTrav->obj.objType == VkObjectTypeSwapChainImageWSI ||\n' -- cgit v1.2.3