From 407b5c62bae52c77efaf0cfa477cc0cbfc09bd85 Mon Sep 17 00:00:00 2001 From: Enrico Granata Date: Mon, 2 Nov 2015 21:52:05 +0000 Subject: Change ValueObject::IsLogicalTrue so that it starts by asking the applicable Language plugin before using the C-style rule llvm-svn: 251838 --- lldb/source/Core/ValueObject.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'lldb/source/Core/ValueObject.cpp') diff --git a/lldb/source/Core/ValueObject.cpp b/lldb/source/Core/ValueObject.cpp index 11ccd1bcfb6..fe86f374a01 100644 --- a/lldb/source/Core/ValueObject.cpp +++ b/lldb/source/Core/ValueObject.cpp @@ -47,6 +47,7 @@ #include "lldb/Symbol/Type.h" #include "lldb/Target/ExecutionContext.h" +#include "lldb/Target/Language.h" #include "lldb/Target/LanguageRuntime.h" #include "lldb/Target/ObjCLanguageRuntime.h" #include "lldb/Target/Process.h" @@ -515,6 +516,20 @@ ValueObject::ResolveValue (Scalar &scalar) bool ValueObject::IsLogicalTrue (Error& error) { + if (Language *language = Language::FindPlugin(GetObjectRuntimeLanguage())) + { + LazyBool is_logical_true = language->IsLogicalTrue(*this, error); + switch (is_logical_true) + { + case eLazyBoolYes: + case eLazyBoolNo: + return (is_logical_true == true); + case eLazyBoolCalculate: + default: + break; + } + } + Scalar scalar_value; if (!ResolveValue (scalar_value)) -- cgit v1.2.3