summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2012-03-09 04:23:44 +0000
committerGreg Clayton <gclayton@apple.com>2012-03-09 04:23:44 +0000
commitefbc7d2356d4b89795d78236a9a9985bc0fa00e9 (patch)
tree0a1d43a85a82ccc15548a477fc9a9ac3945dadab
parent8f15c829bfe02dcc906c695e88c8ca4b53b6035c (diff)
downloadbcm5719-llvm-efbc7d2356d4b89795d78236a9a9985bc0fa00e9.tar.gz
bcm5719-llvm-efbc7d2356d4b89795d78236a9a9985bc0fa00e9.zip
<rdar://problem/11016922>
Don't show variable values in Xcode when they are out of scope. This allows Xcode to step a lot faster when there are many variables in the variables view. llvm-svn: 152380
-rw-r--r--lldb/source/Core/ValueObject.cpp37
1 files changed, 22 insertions, 15 deletions
diff --git a/lldb/source/Core/ValueObject.cpp b/lldb/source/Core/ValueObject.cpp
index b336d59f794..1a7e3702b83 100644
--- a/lldb/source/Core/ValueObject.cpp
+++ b/lldb/source/Core/ValueObject.cpp
@@ -204,23 +204,30 @@ ValueObject::UpdateValueIfNeeded (DynamicValueType use_dynamic, bool update_form
ClearUserVisibleData();
- const bool value_was_valid = GetValueIsValid();
- SetValueDidChange (false);
-
- m_error.Clear();
-
- // Call the pure virtual function to update the value
- bool success = UpdateValue ();
-
- SetValueIsValid (success);
-
- if (first_update)
+ if (IsInScope())
+ {
+ const bool value_was_valid = GetValueIsValid();
SetValueDidChange (false);
- else if (!m_value_did_change && success == false)
+
+ m_error.Clear();
+
+ // Call the pure virtual function to update the value
+ bool success = UpdateValue ();
+
+ SetValueIsValid (success);
+
+ if (first_update)
+ SetValueDidChange (false);
+ else if (!m_value_did_change && success == false)
+ {
+ // The value wasn't gotten successfully, so we mark this
+ // as changed if the value used to be valid and now isn't
+ SetValueDidChange (value_was_valid);
+ }
+ }
+ else
{
- // The value wasn't gotten successfully, so we mark this
- // as changed if the value used to be valid and now isn't
- SetValueDidChange (value_was_valid);
+ m_error.SetErrorString("out of scope");
}
}
return m_error.Success();
OpenPOWER on IntegriCloud