aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Lobodzinski <mark@lunarg.com>2015-04-21 17:15:36 -0600
committerMark Lobodzinski <mark@lunarg.com>2015-04-21 17:17:16 -0600
commitb11da8f8b52bc770a3203f7b017aba94a784d845 (patch)
treeab85291a79b178a218ddb59c1a1000670256cfc1
parent14da561900aeb0ad061f4edaaa0f406f99958e80 (diff)
downloadusermoji-b11da8f8b52bc770a3203f7b017aba94a784d845.tar.xz
layers: Fixed arg selection in object tracker
Reordered args were causing object deletions and memory frees to corrupt the object lists.
-rwxr-xr-xvk-layer-generate.py10
1 files 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'