diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2020-07-26 19:36:28 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2020-07-26 19:36:28 +0000 |
commit | cfca06d7963fa0909f90483b42a6d7d194d01e08 (patch) | |
tree | 209fb2a2d68f8f277793fc8df46c753d31bc853b /lldb/source/DataFormatters/ValueObjectPrinter.cpp | |
parent | 706b4fc47bbc608932d3b491ae19a3b9cde9497b (diff) |
Notes
Diffstat (limited to 'lldb/source/DataFormatters/ValueObjectPrinter.cpp')
-rw-r--r-- | lldb/source/DataFormatters/ValueObjectPrinter.cpp | 35 |
1 files changed, 14 insertions, 21 deletions
diff --git a/lldb/source/DataFormatters/ValueObjectPrinter.cpp b/lldb/source/DataFormatters/ValueObjectPrinter.cpp index 466cf398ec24..c8a306334cf5 100644 --- a/lldb/source/DataFormatters/ValueObjectPrinter.cpp +++ b/lldb/source/DataFormatters/ValueObjectPrinter.cpp @@ -1,4 +1,4 @@ -//===-- ValueObjectPrinter.cpp -----------------------------------*- C++-*-===// +//===-- ValueObjectPrinter.cpp --------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. @@ -151,11 +151,11 @@ const char *ValueObjectPrinter::GetDescriptionForDisplay() { return str; } -const char *ValueObjectPrinter::GetRootNameForDisplay(const char *if_fail) { +const char *ValueObjectPrinter::GetRootNameForDisplay() { const char *root_valobj_name = m_options.m_root_valobj_name.empty() ? m_valobj->GetName().AsCString() : m_options.m_root_valobj_name.c_str(); - return root_valobj_name ? root_valobj_name : if_fail; + return root_valobj_name ? root_valobj_name : ""; } bool ValueObjectPrinter::ShouldPrintValueObject() { @@ -239,17 +239,14 @@ void ValueObjectPrinter::PrintDecl() { // type if there is one to print ConstString type_name; if (m_compiler_type.IsValid()) { - if (m_options.m_use_type_display_name) - type_name = m_valobj->GetDisplayTypeName(); - else - type_name = m_valobj->GetQualifiedTypeName(); + type_name = m_options.m_use_type_display_name + ? m_valobj->GetDisplayTypeName() + : m_valobj->GetQualifiedTypeName(); } else { // only show an invalid type name if the user explicitly triggered // show_type if (m_options.m_show_types) type_name = ConstString("<invalid type>"); - else - type_name.Clear(); } if (type_name) { @@ -260,21 +257,17 @@ void ValueObjectPrinter::PrintDecl() { type_name_str.erase(iter, 2); } } - typeName.Printf("%s", type_name_str.c_str()); + typeName << type_name_str.c_str(); } } StreamString varName; - if (m_options.m_flat_output) { - // If we are showing types, also qualify the C++ base classes - const bool qualify_cxx_base_classes = show_type; - if (!m_options.m_hide_name) { - m_valobj->GetExpressionPath(varName, qualify_cxx_base_classes); - } - } else if (!m_options.m_hide_name) { - const char *name_cstr = GetRootNameForDisplay(""); - varName.Printf("%s", name_cstr); + if (!m_options.m_hide_name) { + if (m_options.m_flat_output) + m_valobj->GetExpressionPath(varName); + else + varName << GetRootNameForDisplay(); } bool decl_printed = false; @@ -450,9 +443,9 @@ bool ValueObjectPrinter::PrintObjectDescriptionIfNeeded(bool value_printed, // If the description already ends with a \n don't add another one. size_t object_end = strlen(object_desc) - 1; if (object_desc[object_end] == '\n') - m_stream->Printf("%s", object_desc); + m_stream->Printf("%s", object_desc); else - m_stream->Printf("%s\n", object_desc); + m_stream->Printf("%s\n", object_desc); return true; } else if (!value_printed && !summary_printed) return true; |