[Lldb-commits] [lldb] 6563826 - Revert "Re-land "[lldb/Lua] Add string conversion operator for SBTarget.""

Jonas Devlieghere via lldb-commits lldb-commits at lists.llvm.org
Tue Jan 7 16:48:13 PST 2020


Author: Jonas Devlieghere
Date: 2020-01-07T16:45:43-08:00
New Revision: 6563826ff0f83cc8ef6c84154841245834a5b37e

URL: https://github.com/llvm/llvm-project/commit/6563826ff0f83cc8ef6c84154841245834a5b37e
DIFF: https://github.com/llvm/llvm-project/commit/6563826ff0f83cc8ef6c84154841245834a5b37e.diff

LOG: Revert "Re-land "[lldb/Lua] Add string conversion operator for SBTarget.""

This was returning a pointer to a stack-allocated memory location. This
works for Python where we return a PythonString which must own the
underlying string.

Added: 
    

Modified: 
    lldb/scripts/Python/python-extensions.swig
    lldb/scripts/lldb.swig
    lldb/scripts/lldb_lua.swig

Removed: 
    lldb/scripts/extensions.swig


################################################################################
diff  --git a/lldb/scripts/Python/python-extensions.swig b/lldb/scripts/Python/python-extensions.swig
index 51b7e4779116..c10c32b44877 100644
--- a/lldb/scripts/Python/python-extensions.swig
+++ b/lldb/scripts/Python/python-extensions.swig
@@ -502,6 +502,18 @@
 }
 
 %extend lldb::SBTarget {
+        %nothreadallow;
+        PyObject *lldb::SBTarget::__str__ (){
+                lldb::SBStream description;
+                $self->GetDescription (description, lldb::eDescriptionLevelBrief);
+                const char *desc = description.GetData();
+                size_t desc_len = description.GetSize();
+                if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
+                    --desc_len;
+                return PythonString(llvm::StringRef(desc, desc_len)).release();
+        }
+        %clearnothreadallow;
+
     %pythoncode %{
         def __eq__(self, rhs):
             if not isinstance(rhs, type(self)):

diff  --git a/lldb/scripts/extensions.swig b/lldb/scripts/extensions.swig
deleted file mode 100644
index 974d28b53399..000000000000
--- a/lldb/scripts/extensions.swig
+++ /dev/null
@@ -1,10 +0,0 @@
-%extend lldb::SBTarget {
-  %nothreadallow;
-  const char *lldb::SBTarget::__str__ (){
-    lldb::SBStream description;
-    $self->GetDescription (description, lldb::eDescriptionLevelBrief);
-    return description.GetData();
-  }
-  %clearnothreadallow;
-}
-

diff  --git a/lldb/scripts/lldb.swig b/lldb/scripts/lldb.swig
index 0adfcc27d635..f030116b6cb8 100644
--- a/lldb/scripts/lldb.swig
+++ b/lldb/scripts/lldb.swig
@@ -95,7 +95,6 @@ def lldb_iter(obj, getsize, getelem):
 
 %include "./Python/python-typemaps.swig"
 %include "./headers.swig"
-%include "./extensions.swig"
 
 %{
 #include "../source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h"

diff  --git a/lldb/scripts/lldb_lua.swig b/lldb/scripts/lldb_lua.swig
index 87f37397c858..85edefff76f2 100644
--- a/lldb/scripts/lldb_lua.swig
+++ b/lldb/scripts/lldb_lua.swig
@@ -9,7 +9,6 @@
 %module lldb
 
 %include "./headers.swig"
-%include "./extensions.swig"
 
 %{
 using namespace lldb_private;


        


More information about the lldb-commits mailing list