-
Notifications
You must be signed in to change notification settings - Fork 38
/
Copy pathswig.patch
52 lines (47 loc) · 1.41 KB
/
swig.patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# hunk 1: multi-inheritance is broken https://sourceforge.net/p/swig/bugs/1379/
# hunk 2: compilation issue on GCC 4.6 http://sourceforge.net/p/swig/patches/296/
# hunk 3: thread bug on iterators https://sourceforge.net/p/swig/bugs/1370/
# hunk 4: thread bug on virtual methods https://github.com/swig/swig/issues/306
--- eossdk_wrap.cpp-t
+++ eossdk_wrap.cpp-t
@@ -1618,6 +1618,10 @@
if (!SwigPyObject_Check(next)) {
return NULL;
}
+ while (sobj->next && SwigPyObject_Check(sobj->next)) {
+ sobj = (SwigPyObject *)sobj->next;
+ }
+ ((SwigPyObject *)next)->next = sobj->next;
sobj->next = next;
Py_INCREF(next);
return SWIG_Py_Void();
@@ -3492,6 +3496,7 @@
#include <string>
#include <stdexcept>
+#include <cstddef>
namespace swig {
@@ -3508,7 +3513,11 @@
}
public:
- virtual ~SwigPyIterator() {}
+ virtual ~SwigPyIterator() {
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ _seq = 0;
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ }
// Access iterator method, required by Python
virtual PyObject *value() const = 0;
@@ -33457,11 +33466,13 @@
try {
{
try {
+ SWIG_PYTHON_THREAD_BEGIN_ALLOW;
if (upcall) {
(arg1)->eos::sdk::main_loop(arg2,arg3);
} else {
(arg1)->main_loop(arg2,arg3);
}
+ SWIG_PYTHON_THREAD_END_ALLOW;
} catch (error const & e) {
throw_py_error(e);
SWIG_fail;