Author: xiaobai Date: Mon Jun 3 16:12:11 2019 New Revision: 362461 URL: http://llvm.org/viewvc/llvm-project?rev=362461&view=rev Log: [Target] Generalize some behavior in Target::SymbolsDidLoad
Summary: SymbolsDidLoad is currently only implemented for ObjCLanguageRuntime, but that doesn't mean that it couldn't be useful for other Langauges. Although this change seems like it's generalizing for the sake of purity, this removes Target's dependency on ObjCLanguageRuntime. Differential Revision: https://reviews.llvm.org/D62796 Modified: lldb/trunk/include/lldb/Target/LanguageRuntime.h lldb/trunk/include/lldb/Target/ObjCLanguageRuntime.h lldb/trunk/source/Target/Target.cpp Modified: lldb/trunk/include/lldb/Target/LanguageRuntime.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/LanguageRuntime.h?rev=362461&r1=362460&r2=362461&view=diff ============================================================================== --- lldb/trunk/include/lldb/Target/LanguageRuntime.h (original) +++ lldb/trunk/include/lldb/Target/LanguageRuntime.h Mon Jun 3 16:12:11 2019 @@ -143,6 +143,8 @@ public: return false; } + virtual void SymbolsDidLoad(const ModuleList &module_list) { return; } + virtual lldb::ThreadPlanSP GetStepThroughTrampolinePlan(Thread &thread, bool stop_others) = 0; Modified: lldb/trunk/include/lldb/Target/ObjCLanguageRuntime.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/ObjCLanguageRuntime.h?rev=362461&r1=362460&r2=362461&view=diff ============================================================================== --- lldb/trunk/include/lldb/Target/ObjCLanguageRuntime.h (original) +++ lldb/trunk/include/lldb/Target/ObjCLanguageRuntime.h Mon Jun 3 16:12:11 2019 @@ -275,7 +275,7 @@ public: return (m_has_new_literals_and_indexing == eLazyBoolYes); } - virtual void SymbolsDidLoad(const ModuleList &module_list) { + void SymbolsDidLoad(const ModuleList &module_list) override { m_negative_complete_class_cache.clear(); } Modified: lldb/trunk/source/Target/Target.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Target.cpp?rev=362461&r1=362460&r2=362461&view=diff ============================================================================== --- lldb/trunk/source/Target/Target.cpp (original) +++ lldb/trunk/source/Target/Target.cpp Mon Jun 3 16:12:11 2019 @@ -43,7 +43,6 @@ #include "lldb/Symbol/Symbol.h" #include "lldb/Target/Language.h" #include "lldb/Target/LanguageRuntime.h" -#include "lldb/Target/ObjCLanguageRuntime.h" #include "lldb/Target/Process.h" #include "lldb/Target/SectionLoadList.h" #include "lldb/Target/StackFrame.h" @@ -1668,11 +1667,8 @@ void Target::ModulesDidLoad(ModuleList & void Target::SymbolsDidLoad(ModuleList &module_list) { if (m_valid && module_list.GetSize()) { if (m_process_sp) { - LanguageRuntime *runtime = - m_process_sp->GetLanguageRuntime(lldb::eLanguageTypeObjC); - if (runtime) { - ObjCLanguageRuntime *objc_runtime = (ObjCLanguageRuntime *)runtime; - objc_runtime->SymbolsDidLoad(module_list); + for (LanguageRuntime *runtime : m_process_sp->GetLanguageRuntimes()) { + runtime->SymbolsDidLoad(module_list); } } _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits