diff options
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 466cf398ec24c..c8a306334cf56 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; |