Make IsSyntheticChildrenGenerated() virtual so that dynamic and synthetic values can refer back to their parents
llvm-svn: 274901
diff --git a/lldb/include/lldb/Core/ValueObject.h b/lldb/include/lldb/Core/ValueObject.h
index b3f6ff8..bef158f 100644
--- a/lldb/include/lldb/Core/ValueObject.h
+++ b/lldb/include/lldb/Core/ValueObject.h
@@ -793,10 +793,10 @@
return false;
}
- bool
+ virtual bool
IsSyntheticChildrenGenerated ();
- void
+ virtual void
SetSyntheticChildrenGenerated (bool b);
virtual SymbolContextScope *
diff --git a/lldb/include/lldb/Core/ValueObjectDynamicValue.h b/lldb/include/lldb/Core/ValueObjectDynamicValue.h
index 80f37f1..8a045c3 100644
--- a/lldb/include/lldb/Core/ValueObjectDynamicValue.h
+++ b/lldb/include/lldb/Core/ValueObjectDynamicValue.h
@@ -117,6 +117,12 @@
void
SetPreferredDisplayLanguage (lldb::LanguageType);
+
+ bool
+ IsSyntheticChildrenGenerated () override;
+
+ void
+ SetSyntheticChildrenGenerated (bool b) override;
bool
GetDeclaration(Declaration &decl) override;
diff --git a/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h b/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h
index 3a80682..38d9f7b 100644
--- a/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h
+++ b/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h
@@ -148,6 +148,12 @@
SetPreferredDisplayLanguage (lldb::LanguageType);
bool
+ IsSyntheticChildrenGenerated () override;
+
+ void
+ SetSyntheticChildrenGenerated (bool b) override;
+
+ bool
GetDeclaration(Declaration &decl) override;
uint64_t
diff --git a/lldb/source/Core/ValueObjectDynamicValue.cpp b/lldb/source/Core/ValueObjectDynamicValue.cpp
index 0ac86a6..65deba0 100644
--- a/lldb/source/Core/ValueObjectDynamicValue.cpp
+++ b/lldb/source/Core/ValueObjectDynamicValue.cpp
@@ -419,6 +419,22 @@
}
bool
+ValueObjectDynamicValue::IsSyntheticChildrenGenerated ()
+{
+ if (m_parent)
+ return m_parent->IsSyntheticChildrenGenerated();
+ return false;
+}
+
+void
+ValueObjectDynamicValue::SetSyntheticChildrenGenerated (bool b)
+{
+ if (m_parent)
+ m_parent->SetSyntheticChildrenGenerated(b);
+ this->ValueObject::SetSyntheticChildrenGenerated(b);
+}
+
+bool
ValueObjectDynamicValue::GetDeclaration (Declaration &decl)
{
if (m_parent)
diff --git a/lldb/source/Core/ValueObjectSyntheticFilter.cpp b/lldb/source/Core/ValueObjectSyntheticFilter.cpp
index 53e38ec..f2f2337 100644
--- a/lldb/source/Core/ValueObjectSyntheticFilter.cpp
+++ b/lldb/source/Core/ValueObjectSyntheticFilter.cpp
@@ -417,6 +417,22 @@
}
bool
+ValueObjectSynthetic::IsSyntheticChildrenGenerated ()
+{
+ if (m_parent)
+ return m_parent->IsSyntheticChildrenGenerated();
+ return false;
+}
+
+void
+ValueObjectSynthetic::SetSyntheticChildrenGenerated (bool b)
+{
+ if (m_parent)
+ m_parent->SetSyntheticChildrenGenerated(b);
+ this->ValueObject::SetSyntheticChildrenGenerated(b);
+}
+
+bool
ValueObjectSynthetic::GetDeclaration (Declaration &decl)
{
if (m_parent)