diff options
author | Alex Langford <alangford@apple.com> | 2023-09-19 10:49:53 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-19 10:49:53 -0700 |
commit | d5a62b78b8ae1856e9eecf7d034ce6a1fbc0a76a (patch) | |
tree | c36f3f326960f1dd694b30bb757cab6952cf8a67 /lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp | |
parent | 45e6e4d70e1e5bdd7d9f04dfd0f4cc8798bcde0c (diff) | |
download | llvm-d5a62b78b8ae1856e9eecf7d034ce6a1fbc0a76a.zip llvm-d5a62b78b8ae1856e9eecf7d034ce6a1fbc0a76a.tar.gz llvm-d5a62b78b8ae1856e9eecf7d034ce6a1fbc0a76a.tar.bz2 |
[lldb][NFCI] Remove unneccessary allocation in ScriptInterpreterPythonImpl::GetSyntheticTypeName (#66724)
Instead of copying memory out of the PythonString (via a std::string)
and then using that to create a ConstString, it would make more sense to
just create the ConstString from the original StringRef in the first
place.
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp')
-rw-r--r-- | lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp index 3fbab6b..6280084 100644 --- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp +++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp @@ -2438,24 +2438,11 @@ ConstString ScriptInterpreterPythonImpl::GetSyntheticTypeName( } PythonObject py_return = std::move(expected_py_return.get()); + if (!py_return.IsAllocated() || !PythonString::Check(py_return.get())) + return {}; - ConstString ret_val; - bool got_string = false; - std::string buffer; - - if (py_return.IsAllocated() && PythonString::Check(py_return.get())) { - PythonString py_string(PyRefType::Borrowed, py_return.get()); - llvm::StringRef return_data(py_string.GetString()); - if (!return_data.empty()) { - buffer.assign(return_data.data(), return_data.size()); - got_string = true; - } - } - - if (got_string) - ret_val.SetCStringWithLength(buffer.c_str(), buffer.size()); - - return ret_val; + PythonString type_name(PyRefType::Borrowed, py_return.get()); + return ConstString(py_string.GetString()); } bool ScriptInterpreterPythonImpl::RunScriptFormatKeyword( |