[Lldb-commits] [lldb] r243102 - Revert "Fix an issue where LLDB would run out of stack space ..."
Pavel Labath
labath at google.com
Fri Jul 24 02:52:26 PDT 2015
Author: labath
Date: Fri Jul 24 04:52:25 2015
New Revision: 243102
URL: http://llvm.org/viewvc/llvm-project?rev=243102&view=rev
Log:
Revert "Fix an issue where LLDB would run out of stack space ..."
This commit introduced an infinite recursion in
ValueObjectChild::CanUpdateWithInvalidExecutionContext (because FollowParentChain also considers
the current object), which broke nearly all the tests. Ignoring the current object removes the
recursion, but two tests still time out (TestDataFormatterLibcxxList.py and
TestValueObjectRecursion.py) for some reason. Reverting for now.
Modified:
lldb/trunk/include/lldb/Core/ValueObject.h
lldb/trunk/include/lldb/Core/ValueObjectChild.h
lldb/trunk/include/lldb/Core/ValueObjectDynamicValue.h
lldb/trunk/include/lldb/Core/ValueObjectSyntheticFilter.h
lldb/trunk/source/Core/ValueObjectChild.cpp
Modified: lldb/trunk/include/lldb/Core/ValueObject.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/ValueObject.h?rev=243102&r1=243101&r2=243102&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Core/ValueObject.h (original)
+++ lldb/trunk/include/lldb/Core/ValueObject.h Fri Jul 24 04:52:25 2015
@@ -861,7 +861,7 @@ public:
bool
NeedsUpdating ()
{
- const bool accept_invalid_exe_ctx = (CanUpdateWithInvalidExecutionContext() == eLazyBoolYes);
+ const bool accept_invalid_exe_ctx = CanUpdateWithInvalidExecutionContext();
return m_update_point.NeedsUpdating(accept_invalid_exe_ctx);
}
@@ -1172,10 +1172,10 @@ protected:
virtual bool
UpdateValue () = 0;
- virtual LazyBool
+ virtual bool
CanUpdateWithInvalidExecutionContext ()
{
- return eLazyBoolCalculate;
+ return false;
}
virtual void
Modified: lldb/trunk/include/lldb/Core/ValueObjectChild.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/ValueObjectChild.h?rev=243102&r1=243101&r2=243102&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Core/ValueObjectChild.h (original)
+++ lldb/trunk/include/lldb/Core/ValueObjectChild.h Fri Jul 24 04:52:25 2015
@@ -84,7 +84,7 @@ protected:
virtual bool
UpdateValue ();
- virtual LazyBool
+ virtual bool
CanUpdateWithInvalidExecutionContext ();
virtual ClangASTType
Modified: lldb/trunk/include/lldb/Core/ValueObjectDynamicValue.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/ValueObjectDynamicValue.h?rev=243102&r1=243101&r2=243102&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Core/ValueObjectDynamicValue.h (original)
+++ lldb/trunk/include/lldb/Core/ValueObjectDynamicValue.h Fri Jul 24 04:52:25 2015
@@ -109,10 +109,10 @@ protected:
virtual bool
UpdateValue ();
- virtual LazyBool
+ virtual bool
CanUpdateWithInvalidExecutionContext ()
{
- return eLazyBoolYes;
+ return true;
}
virtual lldb::DynamicValueType
Modified: lldb/trunk/include/lldb/Core/ValueObjectSyntheticFilter.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/ValueObjectSyntheticFilter.h?rev=243102&r1=243101&r2=243102&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Core/ValueObjectSyntheticFilter.h (original)
+++ lldb/trunk/include/lldb/Core/ValueObjectSyntheticFilter.h Fri Jul 24 04:52:25 2015
@@ -156,10 +156,10 @@ protected:
virtual bool
UpdateValue ();
- virtual LazyBool
+ virtual bool
CanUpdateWithInvalidExecutionContext ()
{
- return eLazyBoolYes;
+ return true;
}
virtual ClangASTType
Modified: lldb/trunk/source/Core/ValueObjectChild.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/ValueObjectChild.cpp?rev=243102&r1=243101&r2=243102&view=diff
==============================================================================
--- lldb/trunk/source/Core/ValueObjectChild.cpp (original)
+++ lldb/trunk/source/Core/ValueObjectChild.cpp Fri Jul 24 04:52:25 2015
@@ -109,14 +109,12 @@ ValueObjectChild::GetDisplayTypeName()
return display_name;
}
-LazyBool
+bool
ValueObjectChild::CanUpdateWithInvalidExecutionContext ()
{
- ValueObject* opinionated_ancestor = FollowParentChain([] (ValueObject* vo) -> bool {
- return (vo->CanUpdateWithInvalidExecutionContext() == eLazyBoolCalculate);
- });
-
- return opinionated_ancestor ? opinionated_ancestor->CanUpdateWithInvalidExecutionContext() : this->ValueObject::CanUpdateWithInvalidExecutionContext();
+ if (m_parent)
+ return m_parent->CanUpdateWithInvalidExecutionContext();
+ return this->ValueObject::CanUpdateWithInvalidExecutionContext();
}
bool
More information about the lldb-commits
mailing list