OSDN Git Service

vulkan: constify DebugReportCallbackList::Message
authorChia-I Wu <olv@google.com>
Tue, 3 May 2016 04:04:47 +0000 (12:04 +0800)
committerChia-I Wu <olv@google.com>
Fri, 6 May 2016 01:31:36 +0000 (09:31 +0800)
Sending a message should not modify the state of DebugReportCallbackList,
conceptually.

Bug: 28120066
Change-Id: I7b30b4a41492b4e670408f34a6bffe8b56295afd

vulkan/libvulkan/debug_report.cpp
vulkan/libvulkan/debug_report.h

index 0388fdc..988655e 100644 (file)
@@ -58,9 +58,9 @@ void DebugReportCallbackList::Message(VkDebugReportFlagsEXT flags,
                                       size_t location,
                                       int32_t message_code,
                                       const char* layer_prefix,
-                                      const char* message) {
+                                      const char* message) const {
     std::shared_lock<decltype(rwmutex_)> lock(rwmutex_);
-    Node* node = &head_;
+    const Node* node = &head_;
     while ((node = node->next)) {
         if ((node->flags & flags) != 0) {
             node->callback(flags, object_type, object, location, message_code,
index 7a03d4a..6f70f18 100644 (file)
@@ -52,7 +52,7 @@ class DebugReportCallbackList {
                  size_t location,
                  int32_t message_code,
                  const char* layer_prefix,
-                 const char* message);
+                 const char* message) const;
 
     static Node* FromHandle(VkDebugReportCallbackEXT handle) {
         return reinterpret_cast<Node*>(uintptr_t(handle));
@@ -78,7 +78,7 @@ class DebugReportCallbackList {
     };
 
     // TODO(jessehall): replace with std::shared_mutex when available in libc++
-    std::shared_timed_mutex rwmutex_;
+    mutable std::shared_timed_mutex rwmutex_;
     Node head_;
 };