layers: Fixed arg selection in object tracker

Reordered args were causing object deletions and memory frees
to corrupt the object lists.
diff --git a/vk-layer-generate.py b/vk-layer-generate.py
index a920462..fe76533 100755
--- a/vk-layer-generate.py
+++ b/vk-layer-generate.py
@@ -1157,15 +1157,21 @@
             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'