aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Lobodzinski <mark@lunarg.com>2016-01-25 14:27:49 -0700
committerMark Lobodzinski <mark@lunarg.com>2016-01-25 16:00:29 -0700
commit22dd274e17d7bdceafc40a64405ad112f515fbc3 (patch)
treeb28e31ccebed340bf39262dd71c6e37d86aa647a
parentfd99d1f30d5fc46bccc20231e4755020fc6b9ea6 (diff)
downloadusermoji-22dd274e17d7bdceafc40a64405ad112f515fbc3.tar.xz
layers: LX306, Fix NPE in draw_state
Fixed a case where getCBNode returned NULL but cleanInFlightcmdBuffer used the result.
-rw-r--r--layers/draw_state.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index 150e3495..89b61a3d 100644
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -3279,12 +3279,14 @@ VK_LAYER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(VkQueue queue, uint
VkBool32 cleanInFlightCmdBuffer(layer_data* my_data, VkCommandBuffer cmdBuffer) {
VkBool32 skip_call = VK_FALSE;
GLOBAL_CB_NODE* pCB = getCBNode(my_data, cmdBuffer);
- for (auto queryEventsPair : pCB->waitedEventsBeforeQueryReset) {
- for (auto event : queryEventsPair.second) {
- if (my_data->eventMap[event].needsSignaled) {
- skip_call |= log_msg(my_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT, 0, 0, DRAWSTATE_INVALID_QUERY, "DS",
- "Cannot get query results on queryPool %" PRIu64 " with index %d which was guarded by unsignaled event %" PRIu64 ".",
- (uint64_t)(queryEventsPair.first.pool), queryEventsPair.first.index, (uint64_t)(event));
+ if (pCB) {
+ for (auto queryEventsPair : pCB->waitedEventsBeforeQueryReset) {
+ for (auto event : queryEventsPair.second) {
+ if (my_data->eventMap[event].needsSignaled) {
+ skip_call |= log_msg(my_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT, 0, 0, DRAWSTATE_INVALID_QUERY, "DS",
+ "Cannot get query results on queryPool %" PRIu64 " with index %d which was guarded by unsignaled event %" PRIu64 ".",
+ (uint64_t)(queryEventsPair.first.pool), queryEventsPair.first.index, (uint64_t)(event));
+ }
}
}
}