aboutsummaryrefslogtreecommitdiff
path: root/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2016-01-13 20:06:56 +0000
committerDimitry Andric <dim@FreeBSD.org>2016-01-13 20:06:56 +0000
commit7fed546d1996271dabc7cf71d4d033125c4da4ee (patch)
tree2b6dc7dcb4a6380cb331aded15f5a81c0038e194 /source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
parent9e6d35490a6542f9c97607f93c2ef8ca8e03cbcc (diff)
downloadsrc-7fed546d1996271dabc7cf71d4d033125c4da4ee.tar.gz
src-7fed546d1996271dabc7cf71d4d033125c4da4ee.zip
Vendor import of lldb trunk r257626:vendor/lldb/lldb-trunk-r257626
Notes
Notes: svn path=/vendor/lldb/dist/; revision=293848 svn path=/vendor/lldb/lldb-trunk-r257626/; revision=293849; tag=vendor/lldb/lldb-trunk-r257626
Diffstat (limited to 'source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp')
-rw-r--r--source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp b/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
index 8c485d97bdc9..584449430829 100644
--- a/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
+++ b/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
@@ -405,9 +405,18 @@ AppleObjCRuntimeV2::GetDynamicTypeAndAddress (ValueObject &in_value,
Address &address,
Value::ValueType &value_type)
{
- // The Runtime is attached to a particular process, you shouldn't pass in a value from another process.
- assert (in_value.GetProcessSP().get() == m_process);
+ // We should never get here with a null process...
assert (m_process != NULL);
+
+ // The Runtime is attached to a particular process, you shouldn't pass in a value from another process.
+ // Note, however, the process might be NULL (e.g. if the value was made with SBTarget::EvaluateExpression...)
+ // in which case it is sufficient if the target's match:
+
+ Process *process = in_value.GetProcessSP().get();
+ if (process)
+ assert (process == m_process);
+ else
+ assert (in_value.GetTargetSP().get() == m_process->CalculateTarget().get());
class_type_or_name.Clear();
value_type = Value::ValueType::eValueTypeScalar;