forked from OSchip/llvm-project
Fix crash in SBStructuredData::GetDescription() when there's no StructuredDataPlugin.
Also, use the StructuredData::Dump method to print the StructuredData if there is no plugin, rather than just returning an error. Differential Revision: https://reviews.llvm.org/D88266
This commit is contained in:
parent
ad865d9d10
commit
afaeb6af79
|
@ -68,14 +68,18 @@ public:
|
|||
return error;
|
||||
}
|
||||
|
||||
// Grab the plugin.
|
||||
auto plugin_sp = lldb::StructuredDataPluginSP(m_plugin_wp);
|
||||
// Grab the plugin
|
||||
lldb::StructuredDataPluginSP plugin_sp = m_plugin_wp.lock();
|
||||
|
||||
// If there's no plugin, call underlying data's dump method:
|
||||
if (!plugin_sp) {
|
||||
error.SetErrorString("Cannot pretty print structured data: "
|
||||
"plugin doesn't exist.");
|
||||
if (!m_data_sp) {
|
||||
error.SetErrorString("No data to describe.");
|
||||
return error;
|
||||
}
|
||||
m_data_sp->Dump(stream, true);
|
||||
return error;
|
||||
}
|
||||
|
||||
// Get the data's description.
|
||||
return plugin_sp->GetDescription(m_data_sp, stream);
|
||||
}
|
||||
|
|
|
@ -35,6 +35,13 @@ class TestStructuredDataAPI(TestBase):
|
|||
# Tests for invalid data type
|
||||
self.invalid_struct_test(example)
|
||||
|
||||
# Test that GetDescription works:
|
||||
s.Clear()
|
||||
error = example.GetDescription(s)
|
||||
self.assertTrue(error.Success(), "GetDescription works")
|
||||
if not "key_float" in s.GetData():
|
||||
self.fail("FAILED: could not find key_float in description output")
|
||||
|
||||
dict_struct = lldb.SBStructuredData()
|
||||
dict_struct = example.GetValueForKey("key_dict")
|
||||
|
||||
|
|
Loading…
Reference in New Issue