From 4c5b3f7df638654d4e948c0f6914a20ce5d0134c Mon Sep 17 00:00:00 2001 From: Enrico Granata Date: Tue, 19 Feb 2013 22:03:00 +0000 Subject: [PATCH] ValueObjectSynthetic could be wrapping a ValueObjectDynamic. In that case, we want to report that the ValueObject is dynamic since synthetic values are supposed to be just their parent with different children llvm-svn: 175563 --- lldb/include/lldb/Core/ValueObjectSyntheticFilter.h | 14 +++++++++++++- lldb/source/Core/ValueObjectSyntheticFilter.cpp | 6 +++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h b/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h index 947f1af..296d44b 100644 --- a/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h +++ b/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h @@ -83,7 +83,19 @@ public: virtual bool IsDynamic () { - return false; + if (m_parent) + return m_parent->IsDynamic(); + else + return false; + } + + virtual lldb::DynamicValueType + GetDynamicValueType () + { + if (m_parent) + return m_parent->GetDynamicValueType(); + else + return lldb::eNoDynamicValues; } virtual ValueObject * diff --git a/lldb/source/Core/ValueObjectSyntheticFilter.cpp b/lldb/source/Core/ValueObjectSyntheticFilter.cpp index cb3fcfe..c8edffa 100644 --- a/lldb/source/Core/ValueObjectSyntheticFilter.cpp +++ b/lldb/source/Core/ValueObjectSyntheticFilter.cpp @@ -115,9 +115,9 @@ ValueObjectSynthetic::GetDynamicValue (lldb::DynamicValueType valueType) { if (!m_parent) return lldb::ValueObjectSP(); - if (m_parent->IsDynamic() && m_parent->GetDynamicValueType() == valueType) - return m_parent->GetSP(); - return ValueObject::GetDynamicValue(valueType); + if (IsDynamic() && GetDynamicValueType() == valueType) + return GetSP(); + return m_parent->GetDynamicValue(valueType); } bool -- 2.7.4