bulbazord created this revision. bulbazord added a reviewer: kastiglione. Herald added a project: All. bulbazord requested review of this revision. Herald added a project: LLDB. Herald added a subscriber: lldb-commits.
I don't think this needs to be a ConstString. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D150709 Files: lldb/include/lldb/Symbol/SymbolContext.h lldb/include/lldb/Target/Language.h lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h lldb/source/Plugins/Language/ObjC/ObjCLanguage.h lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h lldb/source/Symbol/SymbolContext.cpp lldb/source/Target/StackFrame.cpp Index: lldb/source/Target/StackFrame.cpp =================================================================== --- lldb/source/Target/StackFrame.cpp +++ lldb/source/Target/StackFrame.cpp @@ -567,8 +567,9 @@ // Check for direct ivars access which helps us with implicit access to // ivars using "this" or "self". GetSymbolContext(eSymbolContextFunction | eSymbolContextBlock); - if (auto instance_var_name = m_sc.GetInstanceVariableName()) { - var_sp = variable_list->FindVariable(instance_var_name); + llvm::StringRef instance_var_name = m_sc.GetInstanceVariableName(); + if (!instance_var_name.empty()) { + var_sp = variable_list->FindVariable(ConstString(instance_var_name)); if (var_sp) { separator_idx = 0; if (Type *var_type = var_sp->GetType()) Index: lldb/source/Symbol/SymbolContext.cpp =================================================================== --- lldb/source/Symbol/SymbolContext.cpp +++ lldb/source/Symbol/SymbolContext.cpp @@ -541,7 +541,7 @@ return nullptr; } -ConstString SymbolContext::GetInstanceVariableName() { +llvm::StringRef SymbolContext::GetInstanceVariableName() { LanguageType lang_type = eLanguageTypeUnknown; if (Block *function_block = GetFunctionBlock()) Index: lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h =================================================================== --- lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h +++ lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h @@ -40,7 +40,7 @@ static lldb_private::Language *CreateInstance(lldb::LanguageType language); - ConstString GetInstanceVariableName() override { return ConstString("self"); } + llvm::StringRef GetInstanceVariableName() override { return "self"; } static llvm::StringRef GetPluginNameStatic() { return "objcplusplus"; } Index: lldb/source/Plugins/Language/ObjC/ObjCLanguage.h =================================================================== --- lldb/source/Plugins/Language/ObjC/ObjCLanguage.h +++ lldb/source/Plugins/Language/ObjC/ObjCLanguage.h @@ -155,7 +155,7 @@ return false; } - ConstString GetInstanceVariableName() override { return ConstString("self"); } + llvm::StringRef GetInstanceVariableName() override { return "self"; } // PluginInterface protocol llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); } Index: lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h =================================================================== --- lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h +++ lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h @@ -165,7 +165,7 @@ ConstString FindBestAlternateFunctionMangledName( const Mangled mangled, const SymbolContext &sym_ctx) const override; - ConstString GetInstanceVariableName() override { return ConstString("this"); } + llvm::StringRef GetInstanceVariableName() override { return "this"; } // PluginInterface protocol llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); } Index: lldb/include/lldb/Target/Language.h =================================================================== --- lldb/include/lldb/Target/Language.h +++ lldb/include/lldb/Target/Language.h @@ -326,7 +326,7 @@ return ConstString(); } - virtual ConstString GetInstanceVariableName() { return {}; } + virtual llvm::StringRef GetInstanceVariableName() { return {}; } protected: // Classes that inherit from Language can see and modify these Index: lldb/include/lldb/Symbol/SymbolContext.h =================================================================== --- lldb/include/lldb/Symbol/SymbolContext.h +++ lldb/include/lldb/Symbol/SymbolContext.h @@ -250,8 +250,8 @@ /// For C++ the name is "this", for Objective-C the name is "self". /// /// \return - /// Returns a string for the name of the instance variable. - ConstString GetInstanceVariableName(); + /// Returns a StringRef for the name of the instance variable. + llvm::StringRef GetInstanceVariableName(); /// Sorts the types in TypeMap according to SymbolContext to TypeList ///
Index: lldb/source/Target/StackFrame.cpp =================================================================== --- lldb/source/Target/StackFrame.cpp +++ lldb/source/Target/StackFrame.cpp @@ -567,8 +567,9 @@ // Check for direct ivars access which helps us with implicit access to // ivars using "this" or "self". GetSymbolContext(eSymbolContextFunction | eSymbolContextBlock); - if (auto instance_var_name = m_sc.GetInstanceVariableName()) { - var_sp = variable_list->FindVariable(instance_var_name); + llvm::StringRef instance_var_name = m_sc.GetInstanceVariableName(); + if (!instance_var_name.empty()) { + var_sp = variable_list->FindVariable(ConstString(instance_var_name)); if (var_sp) { separator_idx = 0; if (Type *var_type = var_sp->GetType()) Index: lldb/source/Symbol/SymbolContext.cpp =================================================================== --- lldb/source/Symbol/SymbolContext.cpp +++ lldb/source/Symbol/SymbolContext.cpp @@ -541,7 +541,7 @@ return nullptr; } -ConstString SymbolContext::GetInstanceVariableName() { +llvm::StringRef SymbolContext::GetInstanceVariableName() { LanguageType lang_type = eLanguageTypeUnknown; if (Block *function_block = GetFunctionBlock()) Index: lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h =================================================================== --- lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h +++ lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h @@ -40,7 +40,7 @@ static lldb_private::Language *CreateInstance(lldb::LanguageType language); - ConstString GetInstanceVariableName() override { return ConstString("self"); } + llvm::StringRef GetInstanceVariableName() override { return "self"; } static llvm::StringRef GetPluginNameStatic() { return "objcplusplus"; } Index: lldb/source/Plugins/Language/ObjC/ObjCLanguage.h =================================================================== --- lldb/source/Plugins/Language/ObjC/ObjCLanguage.h +++ lldb/source/Plugins/Language/ObjC/ObjCLanguage.h @@ -155,7 +155,7 @@ return false; } - ConstString GetInstanceVariableName() override { return ConstString("self"); } + llvm::StringRef GetInstanceVariableName() override { return "self"; } // PluginInterface protocol llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); } Index: lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h =================================================================== --- lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h +++ lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h @@ -165,7 +165,7 @@ ConstString FindBestAlternateFunctionMangledName( const Mangled mangled, const SymbolContext &sym_ctx) const override; - ConstString GetInstanceVariableName() override { return ConstString("this"); } + llvm::StringRef GetInstanceVariableName() override { return "this"; } // PluginInterface protocol llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); } Index: lldb/include/lldb/Target/Language.h =================================================================== --- lldb/include/lldb/Target/Language.h +++ lldb/include/lldb/Target/Language.h @@ -326,7 +326,7 @@ return ConstString(); } - virtual ConstString GetInstanceVariableName() { return {}; } + virtual llvm::StringRef GetInstanceVariableName() { return {}; } protected: // Classes that inherit from Language can see and modify these Index: lldb/include/lldb/Symbol/SymbolContext.h =================================================================== --- lldb/include/lldb/Symbol/SymbolContext.h +++ lldb/include/lldb/Symbol/SymbolContext.h @@ -250,8 +250,8 @@ /// For C++ the name is "this", for Objective-C the name is "self". /// /// \return - /// Returns a string for the name of the instance variable. - ConstString GetInstanceVariableName(); + /// Returns a StringRef for the name of the instance variable. + llvm::StringRef GetInstanceVariableName(); /// Sorts the types in TypeMap according to SymbolContext to TypeList ///
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits