Title: [134307] trunk/Source/WebKit2
Revision
134307
Author
[email protected]
Date
2012-11-12 14:30:01 -0800 (Mon, 12 Nov 2012)

Log Message

Add debug only code to dump the contents of a transaction
https://bugs.webkit.org/show_bug.cgi?id=101991

Reviewed by Andreas Kling.

* Shared/mac/RemoteLayerTreeTransaction.h:
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::writeIndent):
(WebKit::dumpChangedLayers):
(WebKit::RemoteLayerTreeTransaction::dump):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (134306 => 134307)


--- trunk/Source/WebKit2/ChangeLog	2012-11-12 22:26:28 UTC (rev 134306)
+++ trunk/Source/WebKit2/ChangeLog	2012-11-12 22:30:01 UTC (rev 134307)
@@ -1,5 +1,18 @@
 2012-11-12  Anders Carlsson  <[email protected]>
 
+        Add debug only code to dump the contents of a transaction
+        https://bugs.webkit.org/show_bug.cgi?id=101991
+
+        Reviewed by Andreas Kling.
+
+        * Shared/mac/RemoteLayerTreeTransaction.h:
+        * Shared/mac/RemoteLayerTreeTransaction.mm:
+        (WebKit::writeIndent):
+        (WebKit::dumpChangedLayers):
+        (WebKit::RemoteLayerTreeTransaction::dump):
+
+2012-11-12  Anders Carlsson  <[email protected]>
+
         Store name changes in the layer transaction
         https://bugs.webkit.org/show_bug.cgi?id=101981
 

Modified: trunk/Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.h (134306 => 134307)


--- trunk/Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.h	2012-11-12 22:26:28 UTC (rev 134306)
+++ trunk/Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.h	2012-11-12 22:30:01 UTC (rev 134307)
@@ -53,6 +53,10 @@
 
     void layerPropertiesChanged(const RemoteGraphicsLayer*, unsigned changedProperties);
 
+#ifndef NDEBUG
+    void dump() const;
+#endif
+
 private:
     HashMap<uint64_t, LayerProperties> m_changedLayerProperties;
 };

Modified: trunk/Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.mm (134306 => 134307)


--- trunk/Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.mm	2012-11-12 22:26:28 UTC (rev 134306)
+++ trunk/Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.mm	2012-11-12 22:30:01 UTC (rev 134307)
@@ -27,6 +27,8 @@
 #include "RemoteLayerTreeTransaction.h"
 
 #include "RemoteGraphicsLayer.h"
+#include <wtf/text/CString.h>
+#include <wtf/text/StringBuilder.h>
 
 namespace WebKit {
 
@@ -53,4 +55,57 @@
         layerProperties.name = graphicsLayer->name();
 }
 
+#ifndef NDEBUG
+
+static void writeIndent(StringBuilder& builder, int indent)
+{
+    for (int i = 0; i < indent; ++i)
+        builder.append(' ');
+}
+
+static void dumpChangedLayers(StringBuilder& builder, const HashMap<uint64_t, RemoteLayerTreeTransaction::LayerProperties>& changedLayerProperties)
+{
+    if (changedLayerProperties.isEmpty())
+        return;
+
+    writeIndent(builder, 1);
+    builder.append("(changed-layers\n");
+
+    // Dump the layer properties sorted by layer ID.
+    Vector<uint64_t> layerIDs;
+    copyKeysToVector(changedLayerProperties, layerIDs);
+    std::sort(layerIDs.begin(), layerIDs.end());
+
+    for (uint64_t layerID: layerIDs) {
+        const RemoteLayerTreeTransaction::LayerProperties& layerProperties = changedLayerProperties.get(layerID);
+
+        writeIndent(builder, 2);
+        builder.append("(layer ");
+        builder.appendNumber(layerID);
+
+        if (layerProperties.changedProperties & RemoteLayerTreeTransaction::NameChanged) {
+            builder.append('\n');
+            writeIndent(builder, 3);
+            builder.append("(name \"");
+            builder.append(layerProperties.name);
+            builder.append("\")");
+        }
+
+        builder.append(")\n");
+    }
+}
+
+void RemoteLayerTreeTransaction::dump() const
+{
+    StringBuilder builder;
+
+    builder.append("(\n");
+    dumpChangedLayers(builder, m_changedLayerProperties);
+    builder.append(")\n");
+
+    fprintf(stderr, "%s", builder.toString().utf8().data());
+}
+
+#endif // NDEBUG
+
 } // namespace WebKit
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to