diff options
| author | Chris Forbes <chrisforbes@google.com> | 2016-03-09 12:06:45 +1300 |
|---|---|---|
| committer | Tobin Ehlis <tobine@google.com> | 2016-03-09 07:35:21 -0700 |
| commit | af970211d93a2d5549002eb679b655ad6fa94655 (patch) | |
| tree | e6e80537816f61224dcb679ca2c0e78400d6e6aa | |
| parent | 0bd3bec9e5ae7dc71288e63cf0a5ed327ecf726a (diff) | |
| download | usermoji-af970211d93a2d5549002eb679b655ad6fa94655.tar.xz | |
layers: Lighten object tracker slightly
Just avoiding some repeated unordered_map lookups.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
| -rwxr-xr-x | vk-layer-generate.py | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/vk-layer-generate.py b/vk-layer-generate.py index d9ed3157..242d97e9 100755 --- a/vk-layer-generate.py +++ b/vk-layer-generate.py @@ -873,8 +873,9 @@ class ObjectTrackerSubcommand(Subcommand): procs_txt.append('static void destroy_%s(VkDevice dispatchable_object, %s object)' % (name, o)) procs_txt.append('{') procs_txt.append(' uint64_t object_handle = (uint64_t)(object);') - procs_txt.append(' if (%sMap.find(object_handle) != %sMap.end()) {' % (o, o)) - procs_txt.append(' OBJTRACK_NODE* pNode = %sMap[(uint64_t)object];' % (o)) + procs_txt.append(' auto it = %sMap.find(object_handle);' % o) + procs_txt.append(' if (it != %sMap.end()) {' % o) + procs_txt.append(' OBJTRACK_NODE* pNode = it->second;') procs_txt.append(' uint32_t objIndex = objTypeToIndex(pNode->objType);') procs_txt.append(' assert(numTotalObjs > 0);') procs_txt.append(' numTotalObjs--;') @@ -885,7 +886,7 @@ class ObjectTrackerSubcommand(Subcommand): procs_txt.append(' string_VkDebugReportObjectTypeEXT(pNode->objType), (uint64_t)(object), numTotalObjs, numObjs[objIndex],') procs_txt.append(' string_VkDebugReportObjectTypeEXT(pNode->objType));') procs_txt.append(' delete pNode;') - procs_txt.append(' %sMap.erase(object_handle);' % (o)) + procs_txt.append(' %sMap.erase(it);' % (o)) procs_txt.append(' } else {') procs_txt.append(' log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT ) 0, object_handle, __LINE__, OBJTRACK_NONE, "OBJTRACK",') procs_txt.append(' "Unable to remove obj 0x%" PRIxLEAST64 ". Was it created? Has it already been destroyed?",') @@ -901,9 +902,9 @@ class ObjectTrackerSubcommand(Subcommand): procs_txt.append('{') procs_txt.append(' if (object != VK_NULL_HANDLE) {') procs_txt.append(' uint64_t object_handle = (uint64_t)(object);') - procs_txt.append(' if (%sMap.find(object_handle) != %sMap.end()) {' % (o, o)) - procs_txt.append(' OBJTRACK_NODE* pNode = %sMap[object_handle];' % (o)) - procs_txt.append(' pNode->status |= status_flag;') + procs_txt.append(' auto it = %sMap.find(object_handle);' % o) + procs_txt.append(' if (it != %sMap.end()) {' % o) + procs_txt.append(' it->second->status |= status_flag;') procs_txt.append(' }') procs_txt.append(' else {') procs_txt.append(' // If we do not find it print an error') @@ -929,8 +930,9 @@ class ObjectTrackerSubcommand(Subcommand): procs_txt.append(' const char *fail_msg)') procs_txt.append('{') procs_txt.append(' uint64_t object_handle = (uint64_t)(object);') - procs_txt.append(' if (%sMap.find(object_handle) != %sMap.end()) {' % (o, o)) - procs_txt.append(' OBJTRACK_NODE* pNode = %sMap[object_handle];' % (o)) + procs_txt.append(' auto it = %sMap.find(object_handle);' % o) + procs_txt.append(' if (it != %sMap.end()) {' % o) + procs_txt.append(' OBJTRACK_NODE* pNode = it->second;') procs_txt.append(' if ((pNode->status & status_mask) != status_flag) {') procs_txt.append(' log_msg(mdd(dispatchable_object), msg_flags, pNode->objType, object_handle, __LINE__, OBJTRACK_UNKNOWN_OBJECT, "OBJTRACK",') procs_txt.append(' "OBJECT VALIDATION WARNING: %s object 0x%" PRIxLEAST64 ": %s", string_VkDebugReportObjectTypeEXT(objType),') @@ -955,9 +957,9 @@ class ObjectTrackerSubcommand(Subcommand): procs_txt.append('static VkBool32 reset_%s_status(VkDevice dispatchable_object, %s object, VkDebugReportObjectTypeEXT objType, ObjectStatusFlags status_flag)' % (name, o)) procs_txt.append('{') procs_txt.append(' uint64_t object_handle = (uint64_t)(object);') - procs_txt.append(' if (%sMap.find(object_handle) != %sMap.end()) {' % (o, o)) - procs_txt.append(' OBJTRACK_NODE* pNode = %sMap[object_handle];' % (o)) - procs_txt.append(' pNode->status &= ~status_flag;') + procs_txt.append(' auto it = %sMap.find(object_handle);' % o) + procs_txt.append(' if (it != %sMap.end()) {' % o) + procs_txt.append(' it->second->status &= ~status_flag;') procs_txt.append(' }') procs_txt.append(' else {') procs_txt.append(' // If we do not find it print an error') |
