From fc86717f4371e02127709ae0f5db0ef9dc527809 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Fri, 1 Jan 2021 16:42:44 +0100 Subject: [PATCH] LibWeb: Demangle the names returned by Layout::Node::class_name() Note that these are only used in debugging/test output so it's not performance sensitive. --- Libraries/LibWeb/Layout/Node.cpp | 5 +++-- Libraries/LibWeb/Layout/Node.h | 3 ++- Libraries/LibWeb/Painting/StackingContext.cpp | 7 +++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Libraries/LibWeb/Layout/Node.cpp b/Libraries/LibWeb/Layout/Node.cpp index 4ff5247836..4376e3bb36 100644 --- a/Libraries/LibWeb/Layout/Node.cpp +++ b/Libraries/LibWeb/Layout/Node.cpp @@ -24,6 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include #include #include #include @@ -297,9 +298,9 @@ bool Node::is_root_element() const return is(*dom_node()); } -const char* Node::class_name() const +String Node::class_name() const { - return typeid(*this).name(); + return demangle(typeid(*this).name()); } } diff --git a/Libraries/LibWeb/Layout/Node.h b/Libraries/LibWeb/Layout/Node.h index 21798c80c4..4ae2da141a 100644 --- a/Libraries/LibWeb/Layout/Node.h +++ b/Libraries/LibWeb/Layout/Node.h @@ -93,7 +93,8 @@ public: bool is_root_element() const; - const char* class_name() const; + String class_name() const; + virtual bool is_initial_containing_block() const { return false; } virtual bool is_text() const { return false; } virtual bool is_block() const { return false; } diff --git a/Libraries/LibWeb/Painting/StackingContext.cpp b/Libraries/LibWeb/Painting/StackingContext.cpp index 35021ecf13..fe24a4c642 100644 --- a/Libraries/LibWeb/Painting/StackingContext.cpp +++ b/Libraries/LibWeb/Painting/StackingContext.cpp @@ -25,6 +25,7 @@ */ #include +#include #include #include #include @@ -82,9 +83,11 @@ HitTestResult StackingContext::hit_test(const Gfx::IntPoint& position, HitTestTy void StackingContext::dump(int indent) const { + StringBuilder builder; for (int i = 0; i < indent; ++i) - dbgprintf(" "); - dbgprintf("SC for %s{%s} %s [children: %zu]\n", m_box.class_name(), m_box.dom_node() ? m_box.dom_node()->node_name().characters() : "(anonymous)", m_box.absolute_rect().to_string().characters(), m_children.size()); + builder.append(' '); + builder.appendff("SC for {}({}) {} [children: {}]", m_box.class_name(), m_box.dom_node() ? m_box.dom_node()->node_name().characters() : "(anonymous)", m_box.absolute_rect().to_string().characters(), m_children.size()); + dbgln("{}", builder.string_view()); for (auto& child : m_children) child->dump(indent + 1); }