tatyana-krasnukha created this revision.
tatyana-krasnukha added reviewers: clayborg, granata.enrico.
Herald added a subscriber: lldb-commits.
Swig wraps C++ code into `SWIG_PYTHON_THREAD_BEGIN_ALLOW; ...
SWIG_PYTHON_THREAD_END_ALLOW;`
Thus, lldb crashs with "Fatal Python error: Python memory allocator called
without holding the GIL" when calls `lldb_SB***___str__` function.
Repository:
rLLDB LLDB
https://reviews.llvm.org/D51569
Files:
scripts/Python/python-extensions.swig
Index: scripts/Python/python-extensions.swig
===================================================================
--- scripts/Python/python-extensions.swig
+++ scripts/Python/python-extensions.swig
@@ -7,10 +7,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
%extend lldb::SBBlock {
@@ -21,10 +25,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
%extend lldb::SBBreakpoint {
@@ -35,10 +43,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
%pythoncode %{
@@ -64,10 +76,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
@@ -79,10 +95,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
@@ -110,10 +130,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
/* the write() and flush() calls are not part of the SB API proper, and are solely for Python usage
@@ -137,10 +161,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
%pythoncode %{
def __eq__(self, rhs):
@@ -164,10 +192,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
%extend lldb::SBDebugger {
@@ -178,10 +210,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
%extend lldb::SBDeclaration {
@@ -192,10 +228,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
%pythoncode %{
@@ -221,10 +261,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
%extend lldb::SBFileSpec {
@@ -235,10 +279,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
%extend lldb::SBFrame {
@@ -249,10 +297,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
%extend lldb::SBFunction {
@@ -263,10 +315,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
%pythoncode %{
@@ -292,10 +348,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
%extend lldb::SBInstructionList {
@@ -306,10 +366,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
%extend lldb::SBLineEntry {
@@ -320,10 +384,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
%pythoncode %{
@@ -349,10 +417,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
@@ -364,10 +436,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
%pythoncode %{
@@ -393,10 +469,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
@@ -408,10 +488,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
@@ -423,10 +507,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
%extend lldb::SBSection {
@@ -437,10 +525,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
%pythoncode %{
@@ -479,10 +571,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
%pythoncode %{
def __eq__(self, rhs):
@@ -506,10 +602,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
%extend lldb::SBSymbolContextList {
@@ -520,10 +620,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
@@ -535,10 +639,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
%pythoncode %{
@@ -564,10 +672,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
%extend lldb::SBTypeCategory {
@@ -578,10 +690,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
%extend lldb::SBTypeFilter {
@@ -592,10 +708,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
%pythoncode %{
def __eq__(self, rhs):
@@ -619,10 +739,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
%extend lldb::SBTypeMember {
@@ -633,10 +757,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
%extend lldb::SBTypeMemberFunction {
@@ -647,10 +775,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
%extend lldb::SBTypeEnumMember {
@@ -661,10 +793,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
%extend lldb::SBTypeNameSpecifier {
@@ -675,10 +811,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
%pythoncode %{
def __eq__(self, rhs):
@@ -702,10 +842,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
%pythoncode %{
def __eq__(self, rhs):
@@ -729,10 +873,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
%pythoncode %{
def __eq__(self, rhs):
@@ -756,10 +904,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
%pythoncode %{
def __eq__(self, rhs):
@@ -783,10 +935,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
%extend lldb::SBValueList {
@@ -806,10 +962,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
%extend lldb::SBWatchpoint {
@@ -820,10 +980,14 @@
size_t desc_len = description.GetSize();
if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
--desc_len;
- if (desc_len > 0)
- return lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
- else
+
+ if (desc_len == 0)
return lldb_private::PythonString("").release();
+
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyObject *result = lldb_private::PythonString(llvm::StringRef(desc, desc_len)).release();
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return result;
}
}
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits