[Lldb-commits] [lldb] r152380 - /lldb/trunk/source/Core/ValueObject.cpp

Greg Clayton gclayton at apple.com
Thu Mar 8 20:23:44 PST 2012


Author: gclayton
Date: Thu Mar  8 22:23:44 2012
New Revision: 152380

URL: http://llvm.org/viewvc/llvm-project?rev=152380&view=rev
Log:
<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.


Modified:
    lldb/trunk/source/Core/ValueObject.cpp

Modified: lldb/trunk/source/Core/ValueObject.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/ValueObject.cpp?rev=152380&r1=152379&r2=152380&view=diff
==============================================================================
--- lldb/trunk/source/Core/ValueObject.cpp (original)
+++ lldb/trunk/source/Core/ValueObject.cpp Thu Mar  8 22:23:44 2012
@@ -204,23 +204,30 @@
 
         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();





More information about the lldb-commits mailing list