From c74275bc4ae734d93a994dbe7d071f79c0137039 Mon Sep 17 00:00:00 2001 From: Enrico Granata Date: Tue, 22 Sep 2015 19:45:52 +0000 Subject: Move the logic to post-process dynamic types for ValueObject purposes from the ValueObjects to the LanguageRuntime plugins This is meant to cover cases such as the obvious Base *base = new Derived(); where GetDynamicTypeAndAddress(base) would return the type "Derived", not "Derived *" llvm-svn: 248315 --- .../RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp | 7 +++++++ .../RenderScript/RenderScriptRuntime/RenderScriptRuntime.h | 4 ++++ 2 files changed, 11 insertions(+) (limited to 'lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime') diff --git a/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp b/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp index 7d887be4134..ac841c28643 100644 --- a/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp +++ b/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp @@ -313,6 +313,13 @@ RenderScriptRuntime::GetDynamicTypeAndAddress(ValueObject &in_value, lldb::Dynam return false; } +TypeAndOrName +RenderScriptRuntime::FixUpDynamicType(const TypeAndOrName& type_and_or_name, + const CompilerType& static_type) +{ + return type_and_or_name; +} + bool RenderScriptRuntime::CouldHaveDynamicValue(ValueObject &in_value) { diff --git a/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h b/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h index 1f35f10b5ef..4e2f693c094 100644 --- a/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h +++ b/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h @@ -183,6 +183,10 @@ class RenderScriptRuntime : public lldb_private::CPPLanguageRuntime virtual bool GetDynamicTypeAndAddress(ValueObject &in_value, lldb::DynamicValueType use_dynamic, TypeAndOrName &class_type_or_name, Address &address, Value::ValueType &value_type); + + virtual TypeAndOrName + FixUpDynamicType(const TypeAndOrName& type_and_or_name, + const CompilerType& static_type); virtual bool CouldHaveDynamicValue(ValueObject &in_value); -- cgit v1.2.3