Add SBValue::GetDynamicValue and SBValue::GetStaticValue API's.
<rdar://problem/10545069>


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@146173 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/API/SBValue.cpp b/source/API/SBValue.cpp
index 6ef4c38..c7ab549 100644
--- a/source/API/SBValue.cpp
+++ b/source/API/SBValue.cpp
@@ -597,6 +597,50 @@
 }
 
 lldb::SBValue
+SBValue::GetDynamicValue (lldb::DynamicValueType use_dynamic)
+{
+    if (m_opaque_sp)
+    {
+        if (m_opaque_sp->GetUpdatePoint().GetTargetSP())
+        {
+            Mutex::Locker api_locker (m_opaque_sp->GetUpdatePoint().GetTargetSP()->GetAPIMutex());
+            return SBValue (m_opaque_sp->GetDynamicValue(use_dynamic));
+        }
+    }
+    
+    return SBValue();
+}
+
+lldb::SBValue
+SBValue::GetStaticValue ()
+{
+    if (m_opaque_sp)
+    {
+        if (m_opaque_sp->GetUpdatePoint().GetTargetSP())
+        {
+            Mutex::Locker api_locker (m_opaque_sp->GetUpdatePoint().GetTargetSP()->GetAPIMutex());
+            return SBValue(m_opaque_sp->GetStaticValue());
+        }
+    }
+    
+    return SBValue();
+}
+
+bool
+SBValue::IsDynamic()
+{
+    if (m_opaque_sp)
+    {
+        if (m_opaque_sp->GetUpdatePoint().GetTargetSP())
+        {
+            Mutex::Locker api_locker (m_opaque_sp->GetUpdatePoint().GetTargetSP()->GetAPIMutex());
+            return m_opaque_sp->IsDynamic();
+        }
+    }
+    return false;
+}
+
+lldb::SBValue
 SBValue::GetValueForExpressionPath(const char* expr_path)
 {
     lldb::ValueObjectSP child_sp;