swig package init
This commit is contained in:
parent
406c279bca
commit
40c001d8d4
4
ccache-swig.csh
Normal file
4
ccache-swig.csh
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# Use ccache-swig by default. Users who don't want that can setenv the
|
||||||
|
# CCACHE_DISABLE environment variable in their personal profile.
|
||||||
|
|
||||||
|
alias swig 'ccache-swig swig'
|
||||||
4
ccache-swig.sh
Normal file
4
ccache-swig.sh
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# Use ccache-swig by default. Users who don't want that can set the
|
||||||
|
# CCACHE_DISABLE environment variable in their personal profile.
|
||||||
|
|
||||||
|
alias swig='ccache-swig swig'
|
||||||
12
description-ccache.h2m
Normal file
12
description-ccache.h2m
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
[name]
|
||||||
|
ccache-swig - a fast compiler cache
|
||||||
|
|
||||||
|
[description]
|
||||||
|
ccache-swig is a compiler cache. It speeds up re-compilation of C/C++/SWIG
|
||||||
|
code by caching previous compiles and detecting when the same compile is
|
||||||
|
being done again. ccache-swig is ccache plus support for SWIG.
|
||||||
|
|
||||||
|
[notes]
|
||||||
|
For more information, see @DOCDIR@/swig-doc/Doc/Manual/CCache.html from the
|
||||||
|
swig-doc package.
|
||||||
24
description.h2m
Normal file
24
description.h2m
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
[name]
|
||||||
|
swig - Simplified Wrapper and Interface Generator
|
||||||
|
|
||||||
|
[synopsis]
|
||||||
|
swig [ options ] " file"
|
||||||
|
|
||||||
|
[description]
|
||||||
|
The swig command is used to create wrapper code to connect C and C++ code to
|
||||||
|
scripting languages like Perl, Python, Tcl etc. from the definition of the
|
||||||
|
interface. For detailed information on writing those interface definitions
|
||||||
|
please refer to /usr/share/doc/swig-doc/Doc/Manual/index.html from the swig-doc
|
||||||
|
package.
|
||||||
|
|
||||||
|
This manpage concentrates on explaining the invocation of the swig command.
|
||||||
|
|
||||||
|
[author]
|
||||||
|
SWIG was originally created by David Beazley. For up-to-date information
|
||||||
|
about authors and contributors please check http://www.swig.org/guilty.html.
|
||||||
|
This manual page was written by Torsten Landschoff <torsten@debian.org> and
|
||||||
|
updated by Jitka Plesnikova <jplesnik@redhat.com> (but may be used by
|
||||||
|
others).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
26
swig-3.0.12-Correct-php-testcase.patch
Normal file
26
swig-3.0.12-Correct-php-testcase.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
From 0a9113dcba2930b658cb67f9ba1c63ad8eebd88f Mon Sep 17 00:00:00 2001
|
||||||
|
From: William S Fulton <wsf@fultondesigns.co.uk>
|
||||||
|
Date: Tue, 19 Sep 2017 07:37:29 +0100
|
||||||
|
Subject: [PATCH] Correct php testcase
|
||||||
|
|
||||||
|
---
|
||||||
|
Examples/test-suite/php/preproc_constants_runme.php | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/Examples/test-suite/php/preproc_constants_runme.php b/Examples/test-suite/php/preproc_constants_runme.php
|
||||||
|
index ef32867..bd216c2 100644
|
||||||
|
--- a/Examples/test-suite/php/preproc_constants_runme.php
|
||||||
|
+++ b/Examples/test-suite/php/preproc_constants_runme.php
|
||||||
|
@@ -61,8 +61,8 @@ check::equal(gettype(preproc_constants::EXPR_OR), "integer", "preproc_constants.
|
||||||
|
check::equal(gettype(preproc_constants::EXPR_LAND), "boolean", "preproc_constants.EXPR_LAND has unexpected type");
|
||||||
|
check::equal(gettype(preproc_constants::EXPR_LOR), "boolean", "preproc_constants.EXPR_LOR has unexpected type");
|
||||||
|
check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
|
||||||
|
+check::equal(gettype(preproc_constants::EXPR_MIXED1), "double", "preproc_constants.EXPR_MIXED1 has unexpected type");
|
||||||
|
check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
|
||||||
|
check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
|
||||||
|
-check::equal(gettype(preproc_constants::EXPR_MIXED1), "integer", "preproc_constants.EXPR_MIXED1 has unexpected type");
|
||||||
|
|
||||||
|
?>
|
||||||
|
--
|
||||||
|
2.9.5
|
||||||
|
|
||||||
@ -0,0 +1,58 @@
|
|||||||
|
From 21f532975f59f0c156c76cc739f5a93f57d8f6cb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mark Dufour <m.dufour@kopano.com>
|
||||||
|
Date: Tue, 14 Feb 2017 10:48:30 +0100
|
||||||
|
Subject: [PATCH] [Coverity] fix issue reported for
|
||||||
|
SWIG_Python_ConvertFunctionPtr
|
||||||
|
|
||||||
|
Fix Coverity issue reported for SWIG_Python_ConvertFunctionPtr:
|
||||||
|
|
||||||
|
"Execution cannot reach this statement: *ptr = vptr;"
|
||||||
|
|
||||||
|
Because if 'ty' is null, then desc becomes null and we return with
|
||||||
|
SWIG_ERROR. So 'ty' cannot be null at 'if (ty)'.
|
||||||
|
---
|
||||||
|
Lib/python/pyrun.swg | 21 +++++++++------------
|
||||||
|
1 file changed, 9 insertions(+), 12 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Lib/python/pyrun.swg b/Lib/python/pyrun.swg
|
||||||
|
index ab1237f62..939a69204 100644
|
||||||
|
--- a/Lib/python/pyrun.swg
|
||||||
|
+++ b/Lib/python/pyrun.swg
|
||||||
|
@@ -1287,25 +1287,22 @@ SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) {
|
||||||
|
return SWIG_ConvertPtr(obj, ptr, ty, 0);
|
||||||
|
} else {
|
||||||
|
void *vptr = 0;
|
||||||
|
-
|
||||||
|
+ swig_cast_info *tc;
|
||||||
|
+
|
||||||
|
/* here we get the method pointer for callbacks */
|
||||||
|
const char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc);
|
||||||
|
const char *desc = doc ? strstr(doc, "swig_ptr: ") : 0;
|
||||||
|
if (desc)
|
||||||
|
desc = ty ? SWIG_UnpackVoidPtr(desc + 10, &vptr, ty->name) : 0;
|
||||||
|
- if (!desc)
|
||||||
|
+ if (!desc)
|
||||||
|
return SWIG_ERROR;
|
||||||
|
- if (ty) {
|
||||||
|
- swig_cast_info *tc = SWIG_TypeCheck(desc,ty);
|
||||||
|
- if (tc) {
|
||||||
|
- int newmemory = 0;
|
||||||
|
- *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
|
||||||
|
- assert(!newmemory); /* newmemory handling not yet implemented */
|
||||||
|
- } else {
|
||||||
|
- return SWIG_ERROR;
|
||||||
|
- }
|
||||||
|
+ tc = SWIG_TypeCheck(desc,ty);
|
||||||
|
+ if (tc) {
|
||||||
|
+ int newmemory = 0;
|
||||||
|
+ *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
|
||||||
|
+ assert(!newmemory); /* newmemory handling not yet implemented */
|
||||||
|
} else {
|
||||||
|
- *ptr = vptr;
|
||||||
|
+ return SWIG_ERROR;
|
||||||
|
}
|
||||||
|
return SWIG_OK;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
From 9825fcbab5c4ddd867432f9922bebfbec7b78af0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mark Dufour <m.dufour@kopano.com>
|
||||||
|
Date: Tue, 14 Feb 2017 10:34:37 +0100
|
||||||
|
Subject: [PATCH] [Coverity] fix issue reported for SWIG_Python_FixMethods
|
||||||
|
|
||||||
|
Fix Coverity issue reported for SWIG_Python_FixMethods:
|
||||||
|
|
||||||
|
"buffer_size: Calling strncpy with a source string whose length
|
||||||
|
(10 chars) is greater than or equal to the size argument (10)
|
||||||
|
will fail to null-terminate buff."
|
||||||
|
|
||||||
|
The issue is only reported for the "swig_ptr: " line, but for
|
||||||
|
consistency we replace both occurrences of strncpy with memcpy.
|
||||||
|
---
|
||||||
|
Lib/python/pyinit.swg | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Lib/python/pyinit.swg b/Lib/python/pyinit.swg
|
||||||
|
index 2cc582841..fe45ac941 100644
|
||||||
|
--- a/Lib/python/pyinit.swg
|
||||||
|
+++ b/Lib/python/pyinit.swg
|
||||||
|
@@ -306,9 +306,9 @@ SWIG_Python_FixMethods(PyMethodDef *methods,
|
||||||
|
char *ndoc = (char*)malloc(ldoc + lptr + 10);
|
||||||
|
if (ndoc) {
|
||||||
|
char *buff = ndoc;
|
||||||
|
- strncpy(buff, methods[i].ml_doc, ldoc);
|
||||||
|
+ memcpy(buff, methods[i].ml_doc, ldoc);
|
||||||
|
buff += ldoc;
|
||||||
|
- strncpy(buff, "swig_ptr: ", 10);
|
||||||
|
+ memcpy(buff, "swig_ptr: ", 10);
|
||||||
|
buff += 10;
|
||||||
|
SWIG_PackVoidPtr(buff, ptr, ty->name, lptr);
|
||||||
|
methods[i].ml_doc = ndoc;
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
||||||
@ -0,0 +1,41 @@
|
|||||||
|
From 13eeebd2fb3005abc876957c68bde6a92510aa44 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mark Dufour <m.dufour@kopano.com>
|
||||||
|
Date: Tue, 14 Feb 2017 10:53:14 +0100
|
||||||
|
Subject: [PATCH] [Coverity] fix issue reported for wrapper argument checking
|
||||||
|
|
||||||
|
Fix Coverity issue reported for wrapper argument checking:
|
||||||
|
|
||||||
|
"Null-checking args suggests that it may be null, but it has already
|
||||||
|
been dereferenced on all paths leading to the check."
|
||||||
|
|
||||||
|
So 'args' is null checked, but after dereferencing it with
|
||||||
|
PyTuple_Check(args).
|
||||||
|
---
|
||||||
|
Source/Modules/python.cxx | 11 ++++++++---
|
||||||
|
1 file changed, 8 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Source/Modules/python.cxx b/Source/Modules/python.cxx
|
||||||
|
index a6801fc4e..5e058e773 100644
|
||||||
|
--- a/Source/Modules/python.cxx
|
||||||
|
+++ b/Source/Modules/python.cxx
|
||||||
|
@@ -2541,9 +2541,14 @@ public:
|
||||||
|
|
||||||
|
if (!fastunpack) {
|
||||||
|
Wrapper_add_local(f, "ii", "Py_ssize_t ii");
|
||||||
|
- if (maxargs - (add_self ? 1 : 0) > 0)
|
||||||
|
- Append(f->code, "if (!PyTuple_Check(args)) SWIG_fail;\n");
|
||||||
|
- Append(f->code, "argc = args ? PyObject_Length(args) : 0;\n");
|
||||||
|
+
|
||||||
|
+ if (maxargs - (add_self ? 1 : 0) > 0) {
|
||||||
|
+ Append(f->code, "if (!PyTuple_Check(args)) SWIG_fail;\n");
|
||||||
|
+ Append(f->code, "argc = PyObject_Length(args);\n");
|
||||||
|
+ } else {
|
||||||
|
+ Append(f->code, "argc = args ? PyObject_Length(args) : 0;\n");
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (add_self)
|
||||||
|
Append(f->code, "argv[0] = self;\n");
|
||||||
|
Printf(f->code, "for (ii = 0; (ii < %d) && (ii < argc); ii++) {\n", add_self ? maxargs - 1 : maxargs);
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
From 5803e81d488e97623fe29b8629b977be01a8229e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mark Dufour <m.dufour@kopano.com>
|
||||||
|
Date: Mon, 6 Mar 2017 21:16:41 +0100
|
||||||
|
Subject: [PATCH] Fix Coverity issue reported for setslice (pycontainer.swg):
|
||||||
|
|
||||||
|
"CID 11151 (#3-1 of 3): Using invalid iterator (INVALIDATE_ITERATOR)18.
|
||||||
|
increment_iterator: Incrementing iterator it though it is already past
|
||||||
|
the end of its container."
|
||||||
|
|
||||||
|
Coverity does not understand 'replace_count', so warns that we may go
|
||||||
|
past self->end() (or self->rend() I guess).
|
||||||
|
---
|
||||||
|
Lib/python/pycontainer.swg | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Lib/python/pycontainer.swg b/Lib/python/pycontainer.swg
|
||||||
|
index d40b0baa8..9aefb4fc7 100644
|
||||||
|
--- a/Lib/python/pycontainer.swg
|
||||||
|
+++ b/Lib/python/pycontainer.swg
|
||||||
|
@@ -351,7 +351,7 @@ namespace swig {
|
||||||
|
typename Sequence::const_iterator isit = is.begin();
|
||||||
|
typename Sequence::iterator it = self->begin();
|
||||||
|
std::advance(it,ii);
|
||||||
|
- for (size_t rc=0; rc<replacecount; ++rc) {
|
||||||
|
+ for (size_t rc=0; rc<replacecount && it != self->end(); ++rc) {
|
||||||
|
*it++ = *isit++;
|
||||||
|
for (Py_ssize_t c=0; c<(step-1) && it != self->end(); ++c)
|
||||||
|
it++;
|
||||||
|
@@ -367,7 +367,7 @@ namespace swig {
|
||||||
|
typename Sequence::const_iterator isit = is.begin();
|
||||||
|
typename Sequence::reverse_iterator it = self->rbegin();
|
||||||
|
std::advance(it,size-ii-1);
|
||||||
|
- for (size_t rc=0; rc<replacecount; ++rc) {
|
||||||
|
+ for (size_t rc=0; rc<replacecount && it != self->rend(); ++rc) {
|
||||||
|
*it++ = *isit++;
|
||||||
|
for (Py_ssize_t c=0; c<(-step-1) && it != self->rend(); ++c)
|
||||||
|
it++;
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
||||||
@ -0,0 +1,191 @@
|
|||||||
|
From 90ba174fcea1618af57aa594199541d47a89b7f6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: William S Fulton <wsf@fultondesigns.co.uk>
|
||||||
|
Date: Sun, 17 Sep 2017 19:02:55 +0100
|
||||||
|
Subject: [PATCH 1/2] Fix generated code for constant expressions containing
|
||||||
|
wchar_t L literals.
|
||||||
|
|
||||||
|
Such as:
|
||||||
|
# define __WCHAR_MAX (0x7fffffff + L'\0')
|
||||||
|
|
||||||
|
Reported on swig-user mailing list.
|
||||||
|
---
|
||||||
|
CHANGES.current | 5 +++++
|
||||||
|
Examples/test-suite/csharp/preproc_constants_c_runme.cs | 3 ++-
|
||||||
|
Examples/test-suite/csharp/preproc_constants_runme.cs | 2 ++
|
||||||
|
Examples/test-suite/d/preproc_constants_c_runme.1.d | 2 ++
|
||||||
|
Examples/test-suite/d/preproc_constants_c_runme.2.d | 2 ++
|
||||||
|
Examples/test-suite/d/preproc_constants_runme.1.d | 2 ++
|
||||||
|
Examples/test-suite/d/preproc_constants_runme.2.d | 2 ++
|
||||||
|
Examples/test-suite/php/preproc_constants_c_runme.php | 2 ++
|
||||||
|
Examples/test-suite/php/preproc_constants_runme.php | 2 ++
|
||||||
|
Examples/test-suite/php5/preproc_constants_c_runme.php | 2 ++
|
||||||
|
Examples/test-suite/php5/preproc_constants_runme.php | 2 ++
|
||||||
|
Examples/test-suite/preproc_constants.i | 3 +++
|
||||||
|
Source/CParse/parser.y | 2 +-
|
||||||
|
13 files changed, 29 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
#diff --git a/CHANGES.current b/CHANGES.current
|
||||||
|
#index 1e4a244..b455a9f 100644
|
||||||
|
#--- a/CHANGES.current
|
||||||
|
#+++ b/CHANGES.current
|
||||||
|
#@@ -7,6 +7,11 @@ the issue number to the end of the URL: https://github.com/swig/swig/issues/
|
||||||
|
# Version 4.0.0 (in progress)
|
||||||
|
# ===========================
|
||||||
|
#
|
||||||
|
#+2017-09-17: wsfulton
|
||||||
|
#+ Fix generated code for constant expressions containing wchar_t L literals such as:
|
||||||
|
#+ # define __WCHAR_MAX (0x7fffffff + L'\0')
|
||||||
|
#+ # define __WCHAR_MIN (-__WCHAR_MAX - 1)
|
||||||
|
#+
|
||||||
|
# 2017-09-10: mlamarre
|
||||||
|
# [Python] Patch #1083. Define_DEBUG to 1 to do exactly like Visual Studio
|
||||||
|
# /LDd, /MDd or /MTd compiler options.
|
||||||
|
diff --git a/Examples/test-suite/csharp/preproc_constants_c_runme.cs b/Examples/test-suite/csharp/preproc_constants_c_runme.cs
|
||||||
|
index 76c684d..1c28e49 100644
|
||||||
|
--- a/Examples/test-suite/csharp/preproc_constants_c_runme.cs
|
||||||
|
+++ b/Examples/test-suite/csharp/preproc_constants_c_runme.cs
|
||||||
|
@@ -61,7 +61,8 @@ public class runme {
|
||||||
|
assert( typeof(int) == preproc_constants_c.EXPR_LAND.GetType() );
|
||||||
|
assert( typeof(int) == preproc_constants_c.EXPR_LOR.GetType() );
|
||||||
|
assert( typeof(double) == preproc_constants_c.EXPR_CONDITIONAL.GetType() );
|
||||||
|
-
|
||||||
|
+ assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MAX.GetType() );
|
||||||
|
+ assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MIN.GetType() );
|
||||||
|
}
|
||||||
|
static void assert(bool assertion) {
|
||||||
|
if (!assertion)
|
||||||
|
diff --git a/Examples/test-suite/csharp/preproc_constants_runme.cs b/Examples/test-suite/csharp/preproc_constants_runme.cs
|
||||||
|
index 9fae591..6b02e30 100644
|
||||||
|
--- a/Examples/test-suite/csharp/preproc_constants_runme.cs
|
||||||
|
+++ b/Examples/test-suite/csharp/preproc_constants_runme.cs
|
||||||
|
@@ -60,6 +60,8 @@ public class runme {
|
||||||
|
assert( typeof(bool) == preproc_constants.EXPR_LAND.GetType() );
|
||||||
|
assert( typeof(bool) == preproc_constants.EXPR_LOR.GetType() );
|
||||||
|
assert( typeof(double) == preproc_constants.EXPR_CONDITIONAL.GetType() );
|
||||||
|
+ assert( typeof(int) == preproc_constants.EXPR_WCHAR_MAX.GetType() );
|
||||||
|
+ assert( typeof(int) == preproc_constants.EXPR_WCHAR_MIN.GetType() );
|
||||||
|
|
||||||
|
}
|
||||||
|
static void assert(bool assertion) {
|
||||||
|
diff --git a/Examples/test-suite/d/preproc_constants_c_runme.1.d b/Examples/test-suite/d/preproc_constants_c_runme.1.d
|
||||||
|
index d846c71..2b349af 100644
|
||||||
|
--- a/Examples/test-suite/d/preproc_constants_c_runme.1.d
|
||||||
|
+++ b/Examples/test-suite/d/preproc_constants_c_runme.1.d
|
||||||
|
@@ -61,4 +61,6 @@ void main() {
|
||||||
|
static assert(is(int == typeof(EXPR_LAND())));
|
||||||
|
static assert(is(int == typeof(EXPR_LOR())));
|
||||||
|
static assert(is(double == typeof(EXPR_CONDITIONAL())));
|
||||||
|
+ static assert(is(int == typeof(EXPR_WCHAR_MAX())));
|
||||||
|
+ static assert(is(int == typeof(EXPR_WCHAR_MIN())));
|
||||||
|
}
|
||||||
|
diff --git a/Examples/test-suite/d/preproc_constants_c_runme.2.d b/Examples/test-suite/d/preproc_constants_c_runme.2.d
|
||||||
|
index 9bdbb93..1bac525 100644
|
||||||
|
--- a/Examples/test-suite/d/preproc_constants_c_runme.2.d
|
||||||
|
+++ b/Examples/test-suite/d/preproc_constants_c_runme.2.d
|
||||||
|
@@ -61,4 +61,6 @@ void main() {
|
||||||
|
static assert(is(int == typeof(EXPR_LAND())));
|
||||||
|
static assert(is(int == typeof(EXPR_LOR())));
|
||||||
|
static assert(is(double == typeof(EXPR_CONDITIONAL())));
|
||||||
|
+ static assert(is(int == typeof(EXPR_WCHAR_MAX())));
|
||||||
|
+ static assert(is(int == typeof(EXPR_WCHAR_MIN())));
|
||||||
|
}
|
||||||
|
diff --git a/Examples/test-suite/d/preproc_constants_runme.1.d b/Examples/test-suite/d/preproc_constants_runme.1.d
|
||||||
|
index 009405f..f743f48 100644
|
||||||
|
--- a/Examples/test-suite/d/preproc_constants_runme.1.d
|
||||||
|
+++ b/Examples/test-suite/d/preproc_constants_runme.1.d
|
||||||
|
@@ -60,4 +60,6 @@ void main() {
|
||||||
|
static assert(is(bool == typeof(EXPR_LAND())));
|
||||||
|
static assert(is(bool == typeof(EXPR_LOR())));
|
||||||
|
static assert(is(double == typeof(EXPR_CONDITIONAL())));
|
||||||
|
+ static assert(is(int == typeof(EXPR_WCHAR_MAX())));
|
||||||
|
+ static assert(is(int == typeof(EXPR_WCHAR_MIN())));
|
||||||
|
}
|
||||||
|
diff --git a/Examples/test-suite/d/preproc_constants_runme.2.d b/Examples/test-suite/d/preproc_constants_runme.2.d
|
||||||
|
index 2d92ef0..0d96c37 100644
|
||||||
|
--- a/Examples/test-suite/d/preproc_constants_runme.2.d
|
||||||
|
+++ b/Examples/test-suite/d/preproc_constants_runme.2.d
|
||||||
|
@@ -60,4 +60,6 @@ void main() {
|
||||||
|
static assert(is(bool == typeof(EXPR_LAND())));
|
||||||
|
static assert(is(bool == typeof(EXPR_LOR())));
|
||||||
|
static assert(is(double == typeof(EXPR_CONDITIONAL())));
|
||||||
|
+ static assert(is(int == typeof(EXPR_WCHAR_MAX())));
|
||||||
|
+ static assert(is(int == typeof(EXPR_WCHAR_MIN())));
|
||||||
|
}
|
||||||
|
diff --git a/Examples/test-suite/php/preproc_constants_c_runme.php b/Examples/test-suite/php/preproc_constants_c_runme.php
|
||||||
|
index af9b76e..e59fe18 100644
|
||||||
|
--- a/Examples/test-suite/php/preproc_constants_c_runme.php
|
||||||
|
+++ b/Examples/test-suite/php/preproc_constants_c_runme.php
|
||||||
|
@@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant
|
||||||
|
check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type");
|
||||||
|
check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
|
||||||
|
check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
|
||||||
|
+check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
|
||||||
|
+check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
|
||||||
|
|
||||||
|
?>
|
||||||
|
diff --git a/Examples/test-suite/php/preproc_constants_runme.php b/Examples/test-suite/php/preproc_constants_runme.php
|
||||||
|
index 5c9119b..8e117ea 100644
|
||||||
|
--- a/Examples/test-suite/php/preproc_constants_runme.php
|
||||||
|
+++ b/Examples/test-suite/php/preproc_constants_runme.php
|
||||||
|
@@ -61,5 +61,7 @@ check::equal(gettype(preproc_constants::EXPR_OR), "integer", "preproc_constants.
|
||||||
|
check::equal(gettype(preproc_constants::EXPR_LAND), "boolean", "preproc_constants.EXPR_LAND has unexpected type");
|
||||||
|
check::equal(gettype(preproc_constants::EXPR_LOR), "boolean", "preproc_constants.EXPR_LOR has unexpected type");
|
||||||
|
check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
|
||||||
|
+check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
|
||||||
|
+check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
|
||||||
|
|
||||||
|
?>
|
||||||
|
diff --git a/Examples/test-suite/php5/preproc_constants_c_runme.php b/Examples/test-suite/php5/preproc_constants_c_runme.php
|
||||||
|
index 1ea0195..d978fab 100644
|
||||||
|
--- a/Examples/test-suite/php5/preproc_constants_c_runme.php
|
||||||
|
+++ b/Examples/test-suite/php5/preproc_constants_c_runme.php
|
||||||
|
@@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant
|
||||||
|
check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type");
|
||||||
|
check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
|
||||||
|
check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
|
||||||
|
+check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
|
||||||
|
+check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
|
||||||
|
|
||||||
|
?>
|
||||||
|
diff --git a/Examples/test-suite/php5/preproc_constants_runme.php b/Examples/test-suite/php5/preproc_constants_runme.php
|
||||||
|
index fb9ee4f..7527026 100644
|
||||||
|
--- a/Examples/test-suite/php5/preproc_constants_runme.php
|
||||||
|
+++ b/Examples/test-suite/php5/preproc_constants_runme.php
|
||||||
|
@@ -70,5 +70,7 @@ check::equal(gettype(preproc_constants::EXPR_LAND), "integer", "preproc_constant
|
||||||
|
check::equal(gettype(preproc_constants::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
|
||||||
|
|
||||||
|
check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
|
||||||
|
+check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
|
||||||
|
+check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
|
||||||
|
|
||||||
|
?>
|
||||||
|
diff --git a/Examples/test-suite/preproc_constants.i b/Examples/test-suite/preproc_constants.i
|
||||||
|
index 3a999ad..16b44c9 100644
|
||||||
|
--- a/Examples/test-suite/preproc_constants.i
|
||||||
|
+++ b/Examples/test-suite/preproc_constants.i
|
||||||
|
@@ -87,6 +87,9 @@
|
||||||
|
#define EXPR_LOR 0xFF || 1
|
||||||
|
#define EXPR_CONDITIONAL true ? 2 : 2.2
|
||||||
|
|
||||||
|
+#define EXPR_WCHAR_MAX (0x7fffffff + L'\0')
|
||||||
|
+#define EXPR_WCHAR_MIN (-EXPR_WCHAR_MAX - 1)
|
||||||
|
+
|
||||||
|
#define EXPR_CHAR_COMPOUND_ADD 'A' + 12
|
||||||
|
#define EXPR_CHAR_COMPOUND_LSHIFT 'B' << 6
|
||||||
|
#define H_SUPPRESS_SCALING_MAGIC (('s'<<24) | ('u'<<16) | ('p'<<8) | 'p')
|
||||||
|
diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y
|
||||||
|
index 2e92cd0..273dadb 100644
|
||||||
|
--- a/Source/CParse/parser.y
|
||||||
|
+++ b/Source/CParse/parser.y
|
||||||
|
@@ -194,7 +194,7 @@ int SWIG_cparse_template_reduce(int treduce) {
|
||||||
|
* ----------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
static int promote_type(int t) {
|
||||||
|
- if (t <= T_UCHAR || t == T_CHAR) return T_INT;
|
||||||
|
+ if (t <= T_UCHAR || t == T_CHAR || t == T_WCHAR) return T_INT;
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.9.5
|
||||||
|
|
||||||
@ -0,0 +1,51 @@
|
|||||||
|
From 5f6012039abb6ec9e9dfea801effa6b02fd102bc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Vsevolod Kvachev <rasielll@gmail.com>
|
||||||
|
Date: Thu, 19 Apr 2018 23:04:37 +0300
|
||||||
|
Subject: [PATCH] Fix go version matching in configure for go1.10
|
||||||
|
|
||||||
|
---
|
||||||
|
configure.ac | 10 +++++-----
|
||||||
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 833cb37bf..ba1631743 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -2597,7 +2597,7 @@ else
|
||||||
|
GOVERSIONOPTION=version
|
||||||
|
go_version=$($GO $GOVERSIONOPTION | sed -e 's/go version //')
|
||||||
|
case "$go_version" in
|
||||||
|
- go1 | go1.[[01234]]*)
|
||||||
|
+ go1 | go1.[[01234]] | go1.[[01234]].*)
|
||||||
|
GOC=$(sh -c "$(go env) && echo \$GOCHAR")c
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
@@ -2606,7 +2606,7 @@ else
|
||||||
|
esac
|
||||||
|
AC_MSG_CHECKING([whether go version is too old])
|
||||||
|
case $go_version in
|
||||||
|
- go1.1* | go1.0* | go1 )
|
||||||
|
+ go1.1.* | go1.1 | go1.0 | go1.0.* | go1 )
|
||||||
|
AC_MSG_RESULT([yes - minimum version is 1.2])
|
||||||
|
GO=
|
||||||
|
GOOPT="-intgosize 32"
|
||||||
|
@@ -2624,13 +2624,13 @@ else
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
case $go_version in
|
||||||
|
- go1.0* | go1 | go1.1*)
|
||||||
|
+ go1.0 | go1.0.* | go1 | go1.1 | go1.1.*)
|
||||||
|
GOOPT="$GOOPT -use-shlib"
|
||||||
|
;;
|
||||||
|
- go1.2*)
|
||||||
|
+ go1.2 | go1.2.*)
|
||||||
|
GO12=true
|
||||||
|
;;
|
||||||
|
- go1.3* | go1.4*)
|
||||||
|
+ go1.3 | go1.3.* | go1.4 | go1.4.*)
|
||||||
|
GO13=true
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
||||||
61
swig-3.0.12-Fix-testsuite-to-work-without-.-in-INC.patch
Normal file
61
swig-3.0.12-Fix-testsuite-to-work-without-.-in-INC.patch
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
From 8855ef2b482c09da9255079b0fac92d08c8308fb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Olly Betts <olly@survex.com>
|
||||||
|
Date: Tue, 13 Jun 2017 17:32:37 +1200
|
||||||
|
Subject: [PATCH] [Perl] Fix testsuite to work without . in @INC
|
||||||
|
|
||||||
|
"." was removed from @INC in Perl 5.26 for security reasons, and has
|
||||||
|
also been removed from older versions in some distros.
|
||||||
|
|
||||||
|
Fixes https://github.com/swig/swig/issues/997 reported by lfam.
|
||||||
|
---
|
||||||
|
CHANGES.current | 6 ++++++
|
||||||
|
Examples/Makefile.in | 2 +-
|
||||||
|
Examples/test-suite/perl5/run-perl-test.pl | 2 +-
|
||||||
|
3 files changed, 8 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
#diff --git a/CHANGES.current b/CHANGES.current
|
||||||
|
#index ac620c9..6b379a9 100644
|
||||||
|
#--- a/CHANGES.current
|
||||||
|
#+++ b/CHANGES.current
|
||||||
|
#@@ -7,6 +7,12 @@ the issue number to the end of the URL: https://github.com/swig/swig/issues/
|
||||||
|
# Version 4.0.0 (in progress)
|
||||||
|
# ===========================
|
||||||
|
#
|
||||||
|
#+2017-06-13: olly
|
||||||
|
#+ [Perl] Fix testsuite to work without . in @INC - it was removed in
|
||||||
|
#+ Perl 5.26 for security reasons, and has also been removed from
|
||||||
|
#+ older versions in some distros. Fixes
|
||||||
|
#+ https://github.com/swig/swig/issues/997 reported by lfam.
|
||||||
|
#+
|
||||||
|
# 2017-06-03: wsfulton
|
||||||
|
# Fix %import on a file containing a file scope %fragment forced inclusion to not
|
||||||
|
# generate the fragment contents as %import should not result in code being generated.
|
||||||
|
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
|
||||||
|
index 7682b56..8a88fb5 100644
|
||||||
|
--- a/Examples/Makefile.in
|
||||||
|
+++ b/Examples/Makefile.in
|
||||||
|
@@ -282,7 +282,7 @@ perl5_static_cpp: $(SRCDIR_SRCS)
|
||||||
|
# -----------------------------------------------------------------
|
||||||
|
|
||||||
|
perl5_run:
|
||||||
|
- $(RUNTOOL) $(PERL) $(PERL5_SCRIPT) $(RUNPIPE)
|
||||||
|
+ $(RUNTOOL) $(PERL) -I. $(PERL5_SCRIPT) $(RUNPIPE)
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------
|
||||||
|
# Version display
|
||||||
|
diff --git a/Examples/test-suite/perl5/run-perl-test.pl b/Examples/test-suite/perl5/run-perl-test.pl
|
||||||
|
index 106bf00..5ea4e511 100644
|
||||||
|
--- a/Examples/test-suite/perl5/run-perl-test.pl
|
||||||
|
+++ b/Examples/test-suite/perl5/run-perl-test.pl
|
||||||
|
@@ -7,7 +7,7 @@ use strict;
|
||||||
|
|
||||||
|
my $command = shift @ARGV;
|
||||||
|
|
||||||
|
-my $output = `$^X $command 2>&1`;
|
||||||
|
+my $output = `$^X -I. $command 2>&1`;
|
||||||
|
|
||||||
|
die "SWIG Perl test failed: \n\n$output\n"
|
||||||
|
if $?;
|
||||||
|
--
|
||||||
|
2.9.4
|
||||||
|
|
||||||
@ -0,0 +1,185 @@
|
|||||||
|
From 9e2a12416cf6ce7b926829aff353fe2d9019f135 Mon Sep 17 00:00:00 2001
|
||||||
|
From: William S Fulton <wsf@fultondesigns.co.uk>
|
||||||
|
Date: Mon, 18 Sep 2017 07:06:27 +0100
|
||||||
|
Subject: [PATCH 2/2] Fix type promotion wrapping some non-trivial constant
|
||||||
|
expressions
|
||||||
|
|
||||||
|
This was previously an integral type instead of a floating point type:
|
||||||
|
---
|
||||||
|
CHANGES.current | 5 +++++
|
||||||
|
Examples/test-suite/csharp/preproc_constants_c_runme.cs | 1 +
|
||||||
|
Examples/test-suite/csharp/preproc_constants_runme.cs | 1 +
|
||||||
|
Examples/test-suite/d/preproc_constants_c_runme.1.d | 1 +
|
||||||
|
Examples/test-suite/d/preproc_constants_c_runme.2.d | 1 +
|
||||||
|
Examples/test-suite/d/preproc_constants_runme.1.d | 1 +
|
||||||
|
Examples/test-suite/d/preproc_constants_runme.2.d | 1 +
|
||||||
|
Examples/test-suite/php/preproc_constants_c_runme.php | 1 +
|
||||||
|
Examples/test-suite/php/preproc_constants_runme.php | 1 +
|
||||||
|
Examples/test-suite/php5/preproc_constants_c_runme.php | 1 +
|
||||||
|
Examples/test-suite/php5/preproc_constants_runme.php | 1 +
|
||||||
|
Examples/test-suite/preproc_constants.i | 1 +
|
||||||
|
Source/CParse/parser.y | 1 +
|
||||||
|
13 files changed, 17 insertions(+)
|
||||||
|
|
||||||
|
#diff --git a/CHANGES.current b/CHANGES.current
|
||||||
|
#index b455a9f..f76e5a5 100644
|
||||||
|
#--- a/CHANGES.current
|
||||||
|
#+++ b/CHANGES.current
|
||||||
|
#@@ -7,6 +7,11 @@ the issue number to the end of the URL: https://github.com/swig/swig/issues/
|
||||||
|
# Version 4.0.0 (in progress)
|
||||||
|
# ===========================
|
||||||
|
#
|
||||||
|
#+2017-09-18: wsfulton
|
||||||
|
#+ Fix type promotion wrapping constant expressions of the form:
|
||||||
|
#+ # define EXPR_MIXED1 (0x80 + 11.1) - 1
|
||||||
|
#+ This was previously an integral type instead of a floating point type.
|
||||||
|
#+
|
||||||
|
# 2017-09-17: wsfulton
|
||||||
|
# Fix generated code for constant expressions containing wchar_t L literals such as:
|
||||||
|
# # define __WCHAR_MAX (0x7fffffff + L'\0')
|
||||||
|
diff --git a/Examples/test-suite/csharp/preproc_constants_c_runme.cs b/Examples/test-suite/csharp/preproc_constants_c_runme.cs
|
||||||
|
index 1c28e49..7f40ce4 100644
|
||||||
|
--- a/Examples/test-suite/csharp/preproc_constants_c_runme.cs
|
||||||
|
+++ b/Examples/test-suite/csharp/preproc_constants_c_runme.cs
|
||||||
|
@@ -61,6 +61,7 @@ public class runme {
|
||||||
|
assert( typeof(int) == preproc_constants_c.EXPR_LAND.GetType() );
|
||||||
|
assert( typeof(int) == preproc_constants_c.EXPR_LOR.GetType() );
|
||||||
|
assert( typeof(double) == preproc_constants_c.EXPR_CONDITIONAL.GetType() );
|
||||||
|
+ assert( typeof(double) == preproc_constants_c.EXPR_MIXED1.GetType() );
|
||||||
|
assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MAX.GetType() );
|
||||||
|
assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MIN.GetType() );
|
||||||
|
}
|
||||||
|
diff --git a/Examples/test-suite/csharp/preproc_constants_runme.cs b/Examples/test-suite/csharp/preproc_constants_runme.cs
|
||||||
|
index 6b02e30..0d8981f 100644
|
||||||
|
--- a/Examples/test-suite/csharp/preproc_constants_runme.cs
|
||||||
|
+++ b/Examples/test-suite/csharp/preproc_constants_runme.cs
|
||||||
|
@@ -60,6 +60,7 @@ public class runme {
|
||||||
|
assert( typeof(bool) == preproc_constants.EXPR_LAND.GetType() );
|
||||||
|
assert( typeof(bool) == preproc_constants.EXPR_LOR.GetType() );
|
||||||
|
assert( typeof(double) == preproc_constants.EXPR_CONDITIONAL.GetType() );
|
||||||
|
+ assert( typeof(double) == preproc_constants.EXPR_MIXED1.GetType() );
|
||||||
|
assert( typeof(int) == preproc_constants.EXPR_WCHAR_MAX.GetType() );
|
||||||
|
assert( typeof(int) == preproc_constants.EXPR_WCHAR_MIN.GetType() );
|
||||||
|
|
||||||
|
diff --git a/Examples/test-suite/d/preproc_constants_c_runme.1.d b/Examples/test-suite/d/preproc_constants_c_runme.1.d
|
||||||
|
index 2b349af..b79ee3b 100644
|
||||||
|
--- a/Examples/test-suite/d/preproc_constants_c_runme.1.d
|
||||||
|
+++ b/Examples/test-suite/d/preproc_constants_c_runme.1.d
|
||||||
|
@@ -61,6 +61,7 @@ void main() {
|
||||||
|
static assert(is(int == typeof(EXPR_LAND())));
|
||||||
|
static assert(is(int == typeof(EXPR_LOR())));
|
||||||
|
static assert(is(double == typeof(EXPR_CONDITIONAL())));
|
||||||
|
+ static assert(is(double == typeof(EXPR_MIXED1())));
|
||||||
|
static assert(is(int == typeof(EXPR_WCHAR_MAX())));
|
||||||
|
static assert(is(int == typeof(EXPR_WCHAR_MIN())));
|
||||||
|
}
|
||||||
|
diff --git a/Examples/test-suite/d/preproc_constants_c_runme.2.d b/Examples/test-suite/d/preproc_constants_c_runme.2.d
|
||||||
|
index 1bac525..260bf8d 100644
|
||||||
|
--- a/Examples/test-suite/d/preproc_constants_c_runme.2.d
|
||||||
|
+++ b/Examples/test-suite/d/preproc_constants_c_runme.2.d
|
||||||
|
@@ -61,6 +61,7 @@ void main() {
|
||||||
|
static assert(is(int == typeof(EXPR_LAND())));
|
||||||
|
static assert(is(int == typeof(EXPR_LOR())));
|
||||||
|
static assert(is(double == typeof(EXPR_CONDITIONAL())));
|
||||||
|
+ static assert(is(double == typeof(EXPR_MIXED1())));
|
||||||
|
static assert(is(int == typeof(EXPR_WCHAR_MAX())));
|
||||||
|
static assert(is(int == typeof(EXPR_WCHAR_MIN())));
|
||||||
|
}
|
||||||
|
diff --git a/Examples/test-suite/d/preproc_constants_runme.1.d b/Examples/test-suite/d/preproc_constants_runme.1.d
|
||||||
|
index f743f48..84a99c8 100644
|
||||||
|
--- a/Examples/test-suite/d/preproc_constants_runme.1.d
|
||||||
|
+++ b/Examples/test-suite/d/preproc_constants_runme.1.d
|
||||||
|
@@ -60,6 +60,7 @@ void main() {
|
||||||
|
static assert(is(bool == typeof(EXPR_LAND())));
|
||||||
|
static assert(is(bool == typeof(EXPR_LOR())));
|
||||||
|
static assert(is(double == typeof(EXPR_CONDITIONAL())));
|
||||||
|
+ static assert(is(double == typeof(EXPR_MIXED1())));
|
||||||
|
static assert(is(int == typeof(EXPR_WCHAR_MAX())));
|
||||||
|
static assert(is(int == typeof(EXPR_WCHAR_MIN())));
|
||||||
|
}
|
||||||
|
diff --git a/Examples/test-suite/d/preproc_constants_runme.2.d b/Examples/test-suite/d/preproc_constants_runme.2.d
|
||||||
|
index 0d96c37..f6638f4 100644
|
||||||
|
--- a/Examples/test-suite/d/preproc_constants_runme.2.d
|
||||||
|
+++ b/Examples/test-suite/d/preproc_constants_runme.2.d
|
||||||
|
@@ -60,6 +60,7 @@ void main() {
|
||||||
|
static assert(is(bool == typeof(EXPR_LAND())));
|
||||||
|
static assert(is(bool == typeof(EXPR_LOR())));
|
||||||
|
static assert(is(double == typeof(EXPR_CONDITIONAL())));
|
||||||
|
+ static assert(is(double == typeof(EXPR_MIXED1())));
|
||||||
|
static assert(is(int == typeof(EXPR_WCHAR_MAX())));
|
||||||
|
static assert(is(int == typeof(EXPR_WCHAR_MIN())));
|
||||||
|
}
|
||||||
|
diff --git a/Examples/test-suite/php/preproc_constants_c_runme.php b/Examples/test-suite/php/preproc_constants_c_runme.php
|
||||||
|
index e59fe18..20868dc 100644
|
||||||
|
--- a/Examples/test-suite/php/preproc_constants_c_runme.php
|
||||||
|
+++ b/Examples/test-suite/php/preproc_constants_c_runme.php
|
||||||
|
@@ -62,6 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant
|
||||||
|
check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type");
|
||||||
|
check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
|
||||||
|
check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
|
||||||
|
+check::equal(gettype(preproc_constants_c::EXPR_MIXED1), "double", "preproc_constants.EXPR_MIXED1 has unexpected type");
|
||||||
|
check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
|
||||||
|
check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
|
||||||
|
|
||||||
|
diff --git a/Examples/test-suite/php/preproc_constants_runme.php b/Examples/test-suite/php/preproc_constants_runme.php
|
||||||
|
index 8e117ea..ef32867 100644
|
||||||
|
--- a/Examples/test-suite/php/preproc_constants_runme.php
|
||||||
|
+++ b/Examples/test-suite/php/preproc_constants_runme.php
|
||||||
|
@@ -63,5 +63,6 @@ check::equal(gettype(preproc_constants::EXPR_LOR), "boolean", "preproc_constants
|
||||||
|
check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
|
||||||
|
check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
|
||||||
|
check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
|
||||||
|
+check::equal(gettype(preproc_constants::EXPR_MIXED1), "integer", "preproc_constants.EXPR_MIXED1 has unexpected type");
|
||||||
|
|
||||||
|
?>
|
||||||
|
diff --git a/Examples/test-suite/php5/preproc_constants_c_runme.php b/Examples/test-suite/php5/preproc_constants_c_runme.php
|
||||||
|
index d978fab..d55d423 100644
|
||||||
|
--- a/Examples/test-suite/php5/preproc_constants_c_runme.php
|
||||||
|
+++ b/Examples/test-suite/php5/preproc_constants_c_runme.php
|
||||||
|
@@ -62,6 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant
|
||||||
|
check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type");
|
||||||
|
check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
|
||||||
|
check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
|
||||||
|
+check::equal(gettype(preproc_constants_c::EXPR_MIXED1), "double", "preproc_constants.EXPR_MIXED1 has unexpected type");
|
||||||
|
check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
|
||||||
|
check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
|
||||||
|
|
||||||
|
diff --git a/Examples/test-suite/php5/preproc_constants_runme.php b/Examples/test-suite/php5/preproc_constants_runme.php
|
||||||
|
index 7527026..01137b0 100644
|
||||||
|
--- a/Examples/test-suite/php5/preproc_constants_runme.php
|
||||||
|
+++ b/Examples/test-suite/php5/preproc_constants_runme.php
|
||||||
|
@@ -70,6 +70,7 @@ check::equal(gettype(preproc_constants::EXPR_LAND), "integer", "preproc_constant
|
||||||
|
check::equal(gettype(preproc_constants::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
|
||||||
|
|
||||||
|
check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
|
||||||
|
+check::equal(gettype(preproc_constants::EXPR_MIXED1), "double", "preproc_constants.EXPR_MIXED1 has unexpected type");
|
||||||
|
check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
|
||||||
|
check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
|
||||||
|
|
||||||
|
diff --git a/Examples/test-suite/preproc_constants.i b/Examples/test-suite/preproc_constants.i
|
||||||
|
index 16b44c9..628cae1 100644
|
||||||
|
--- a/Examples/test-suite/preproc_constants.i
|
||||||
|
+++ b/Examples/test-suite/preproc_constants.i
|
||||||
|
@@ -86,6 +86,7 @@
|
||||||
|
#define EXPR_LAND 0xFF && 1
|
||||||
|
#define EXPR_LOR 0xFF || 1
|
||||||
|
#define EXPR_CONDITIONAL true ? 2 : 2.2
|
||||||
|
+#define EXPR_MIXED1 (0x80 + 11.1) - 1
|
||||||
|
|
||||||
|
#define EXPR_WCHAR_MAX (0x7fffffff + L'\0')
|
||||||
|
#define EXPR_WCHAR_MIN (-EXPR_WCHAR_MAX - 1)
|
||||||
|
diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y
|
||||||
|
index 273dadb..3df9896 100644
|
||||||
|
--- a/Source/CParse/parser.y
|
||||||
|
+++ b/Source/CParse/parser.y
|
||||||
|
@@ -6338,6 +6338,7 @@ valexpr : exprnum { $$ = $1; }
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ $$.type = promote($2.type, $4.type);
|
||||||
|
}
|
||||||
|
| LPAREN expr pointer RPAREN expr %prec CAST {
|
||||||
|
$$ = $5;
|
||||||
|
--
|
||||||
|
2.9.5
|
||||||
|
|
||||||
BIN
swig-3.0.12.tar.gz
Normal file
BIN
swig-3.0.12.tar.gz
Normal file
Binary file not shown.
541
swig-node-v7.patch
Normal file
541
swig-node-v7.patch
Normal file
@ -0,0 +1,541 @@
|
|||||||
|
From f08d7a63a92a3ba89d97bdfcc206e1e1c4804c0f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Patrick Schneider <patrick.schneider@meetnow.eu>
|
||||||
|
Date: Thu, 13 Apr 2017 15:02:53 +0200
|
||||||
|
Subject: [PATCH 1/2] Add Node 7.x aka V8 5.2+ support
|
||||||
|
|
||||||
|
* Use WeakCallbackInfo instead of WeakCallbackData
|
||||||
|
* Use GetPrivate instead of GetHiddenValue
|
||||||
|
* Adopted new signature for SetWeak to support destructor calling
|
||||||
|
* SetAccessor deprecation fixed
|
||||||
|
* Proper version checks where applicable
|
||||||
|
---
|
||||||
|
Lib/javascript/v8/javascriptcode.swg | 27 +++++++++++++++++-----
|
||||||
|
Lib/javascript/v8/javascripthelpers.swg | 29 +++++++++++++++++++++---
|
||||||
|
Lib/javascript/v8/javascriptinit.swg | 16 +++++++++++--
|
||||||
|
Lib/javascript/v8/javascriptrun.swg | 40 ++++++++++++++++++++++++++++-----
|
||||||
|
4 files changed, 95 insertions(+), 17 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Lib/javascript/v8/javascriptcode.swg b/Lib/javascript/v8/javascriptcode.swg
|
||||||
|
index fb7d55c2ad..b8c5089816 100644
|
||||||
|
--- a/Lib/javascript/v8/javascriptcode.swg
|
||||||
|
+++ b/Lib/javascript/v8/javascriptcode.swg
|
||||||
|
@@ -133,10 +133,13 @@ static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Value> object, v
|
||||||
|
SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter);
|
||||||
|
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
|
||||||
|
static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Object> *object, SWIGV8_Proxy *proxy) {
|
||||||
|
-#else
|
||||||
|
+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) {
|
||||||
|
v8::Local<v8::Object> object = data.GetValue();
|
||||||
|
SWIGV8_Proxy *proxy = data.GetParameter();
|
||||||
|
+#else
|
||||||
|
+ static void $jswrapper(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) {
|
||||||
|
+ SWIGV8_Proxy *proxy = data.GetParameter();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if(proxy->swigCMemOwn && proxy->swigCObject) {
|
||||||
|
@@ -147,7 +150,9 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
|
||||||
|
}
|
||||||
|
delete proxy;
|
||||||
|
|
||||||
|
+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
object.Clear();
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710)
|
||||||
|
object.Dispose();
|
||||||
|
@@ -155,7 +160,7 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
|
||||||
|
object.Dispose(isolate);
|
||||||
|
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x032100)
|
||||||
|
object->Dispose(isolate);
|
||||||
|
-#else
|
||||||
|
+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
object->Dispose();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
@@ -177,10 +182,13 @@ static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Value> object, v
|
||||||
|
SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter);
|
||||||
|
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
|
||||||
|
static void $jswrapper(v8::Isolate *isolate, v8::Persistent< v8::Object> *object, SWIGV8_Proxy *proxy) {
|
||||||
|
-#else
|
||||||
|
+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) {
|
||||||
|
v8::Local<v8::Object> object = data.GetValue();
|
||||||
|
SWIGV8_Proxy *proxy = data.GetParameter();
|
||||||
|
+#else
|
||||||
|
+static void $jswrapper(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) {
|
||||||
|
+ SWIGV8_Proxy *proxy = data.GetParameter();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if(proxy->swigCMemOwn && proxy->swigCObject) {
|
||||||
|
@@ -197,7 +205,7 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
|
||||||
|
object->Dispose(isolate);
|
||||||
|
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
|
||||||
|
object->Dispose();
|
||||||
|
-#else
|
||||||
|
+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
object.Clear();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
@@ -211,7 +219,11 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
|
||||||
|
* ----------------------------------------------------------------------------- */
|
||||||
|
%fragment("js_getter", "templates")
|
||||||
|
%{
|
||||||
|
+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
static SwigV8ReturnValue $jswrapper(v8::Local<v8::String> property, const SwigV8PropertyCallbackInfo &info) {
|
||||||
|
+#else
|
||||||
|
+static SwigV8ReturnValue $jswrapper(v8::Local<v8::Name> property, const SwigV8PropertyCallbackInfo &info) {
|
||||||
|
+#endif
|
||||||
|
SWIGV8_HANDLESCOPE();
|
||||||
|
|
||||||
|
v8::Handle<v8::Value> jsresult;
|
||||||
|
@@ -233,8 +245,11 @@ fail:
|
||||||
|
* ----------------------------------------------------------------------------- */
|
||||||
|
%fragment("js_setter", "templates")
|
||||||
|
%{
|
||||||
|
-static void $jswrapper(v8::Local<v8::String> property, v8::Local<v8::Value> value,
|
||||||
|
- const SwigV8PropertyCallbackInfoVoid &info) {
|
||||||
|
+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
+static void $jswrapper(v8::Local<v8::String> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid &info) {
|
||||||
|
+#else
|
||||||
|
+static void $jswrapper(v8::Local<v8::Name> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid &info) {
|
||||||
|
+#endif
|
||||||
|
SWIGV8_HANDLESCOPE();
|
||||||
|
|
||||||
|
$jslocals
|
||||||
|
diff --git a/Lib/javascript/v8/javascripthelpers.swg b/Lib/javascript/v8/javascripthelpers.swg
|
||||||
|
index 091467df4d..74610793af 100644
|
||||||
|
--- a/Lib/javascript/v8/javascripthelpers.swg
|
||||||
|
+++ b/Lib/javascript/v8/javascripthelpers.swg
|
||||||
|
@@ -6,11 +6,16 @@ typedef v8::InvocationCallback SwigV8FunctionCallback;
|
||||||
|
typedef v8::AccessorGetter SwigV8AccessorGetterCallback;
|
||||||
|
typedef v8::AccessorSetter SwigV8AccessorSetterCallback;
|
||||||
|
typedef v8::AccessorInfo SwigV8PropertyCallbackInfoVoid;
|
||||||
|
-#else
|
||||||
|
+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
typedef v8::FunctionCallback SwigV8FunctionCallback;
|
||||||
|
typedef v8::AccessorGetterCallback SwigV8AccessorGetterCallback;
|
||||||
|
typedef v8::AccessorSetterCallback SwigV8AccessorSetterCallback;
|
||||||
|
typedef v8::PropertyCallbackInfo<void> SwigV8PropertyCallbackInfoVoid;
|
||||||
|
+#else
|
||||||
|
+typedef v8::FunctionCallback SwigV8FunctionCallback;
|
||||||
|
+typedef v8::AccessorNameGetterCallback SwigV8AccessorGetterCallback;
|
||||||
|
+typedef v8::AccessorNameSetterCallback SwigV8AccessorSetterCallback;
|
||||||
|
+typedef v8::PropertyCallbackInfo<void> SwigV8PropertyCallbackInfoVoid;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -65,18 +70,36 @@ SWIGRUNTIME void SWIGV8_AddStaticFunction(v8::Handle<v8::Object> obj, const char
|
||||||
|
*/
|
||||||
|
SWIGRUNTIME void SWIGV8_AddStaticVariable(v8::Handle<v8::Object> obj, const char* symbol,
|
||||||
|
SwigV8AccessorGetterCallback getter, SwigV8AccessorSetterCallback setter) {
|
||||||
|
+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
obj->SetAccessor(SWIGV8_SYMBOL_NEW(symbol), getter, setter);
|
||||||
|
+#else
|
||||||
|
+ obj->SetAccessor(SWIGV8_CURRENT_CONTEXT(), SWIGV8_SYMBOL_NEW(symbol), getter, setter);
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
-SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::String> property, v8::Local<v8::Value> value,
|
||||||
|
- const SwigV8PropertyCallbackInfoVoid& info)
|
||||||
|
+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
+SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::String> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid& info)
|
||||||
|
+#else
|
||||||
|
+SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::Name> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid& info)
|
||||||
|
+#endif
|
||||||
|
{
|
||||||
|
char buffer[256];
|
||||||
|
char msg[512];
|
||||||
|
int res;
|
||||||
|
|
||||||
|
+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
property->WriteUtf8(buffer, 256);
|
||||||
|
res = sprintf(msg, "Tried to write read-only variable: %s.", buffer);
|
||||||
|
+#else
|
||||||
|
+ v8::Local<v8::String> sproperty;
|
||||||
|
+ if (property->ToString(SWIGV8_CURRENT_CONTEXT()).ToLocal(&sproperty)) {
|
||||||
|
+ sproperty->WriteUtf8(buffer, 256);
|
||||||
|
+ res = sprintf(msg, "Tried to write read-only variable: %s.", buffer);
|
||||||
|
+ }
|
||||||
|
+ else {
|
||||||
|
+ res = -1;
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
if(res<0) {
|
||||||
|
SWIG_exception(SWIG_ERROR, "Tried to write read-only variable.");
|
||||||
|
diff --git a/Lib/javascript/v8/javascriptinit.swg b/Lib/javascript/v8/javascriptinit.swg
|
||||||
|
index 34befa7ce7..86008d927f 100644
|
||||||
|
--- a/Lib/javascript/v8/javascriptinit.swg
|
||||||
|
+++ b/Lib/javascript/v8/javascriptinit.swg
|
||||||
|
@@ -7,15 +7,27 @@ SWIG_V8_SetModule(void *, swig_module_info *swig_module) {
|
||||||
|
v8::Local<v8::Object> global_obj = SWIGV8_CURRENT_CONTEXT()->Global();
|
||||||
|
v8::Local<v8::External> mod = SWIGV8_EXTERNAL_NEW(swig_module);
|
||||||
|
assert(!mod.IsEmpty());
|
||||||
|
+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
global_obj->SetHiddenValue(SWIGV8_STRING_NEW("swig_module_info_data"), mod);
|
||||||
|
+#else
|
||||||
|
+ v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("swig_module_info_data"));
|
||||||
|
+ global_obj->SetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey, mod);
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
SWIGRUNTIME swig_module_info *
|
||||||
|
SWIG_V8_GetModule(void *) {
|
||||||
|
v8::Local<v8::Object> global_obj = SWIGV8_CURRENT_CONTEXT()->Global();
|
||||||
|
+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
v8::Local<v8::Value> moduleinfo = global_obj->GetHiddenValue(SWIGV8_STRING_NEW("swig_module_info_data"));
|
||||||
|
+#else
|
||||||
|
+ v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("swig_module_info_data"));
|
||||||
|
+ v8::Local<v8::Value> moduleinfo;
|
||||||
|
+ if (!global_obj->GetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey).ToLocal(&moduleinfo))
|
||||||
|
+ return 0;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
- if (moduleinfo.IsEmpty())
|
||||||
|
+ if (moduleinfo.IsEmpty() || moduleinfo->IsNull() || moduleinfo->IsUndefined())
|
||||||
|
{
|
||||||
|
// It's not yet loaded
|
||||||
|
return 0;
|
||||||
|
@@ -23,7 +35,7 @@ SWIG_V8_GetModule(void *) {
|
||||||
|
|
||||||
|
v8::Local<v8::External> moduleinfo_extern = v8::Local<v8::External>::Cast(moduleinfo);
|
||||||
|
|
||||||
|
- if (moduleinfo_extern.IsEmpty())
|
||||||
|
+ if (moduleinfo_extern.IsEmpty() || moduleinfo_extern->IsNull() || moduleinfo_extern->IsUndefined())
|
||||||
|
{
|
||||||
|
// Something's not right
|
||||||
|
return 0;
|
||||||
|
diff --git a/Lib/javascript/v8/javascriptrun.swg b/Lib/javascript/v8/javascriptrun.swg
|
||||||
|
index 5ac52a51dc..30002c02a3 100644
|
||||||
|
--- a/Lib/javascript/v8/javascriptrun.swg
|
||||||
|
+++ b/Lib/javascript/v8/javascriptrun.swg
|
||||||
|
@@ -193,8 +193,10 @@ public:
|
||||||
|
void (*dtor) (v8::Isolate *isolate, v8::Persistent< v8::Value> object, void *parameter);
|
||||||
|
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
|
||||||
|
void (*dtor) (v8::Isolate *isolate, v8::Persistent< v8::Object > *object, SWIGV8_Proxy *proxy);
|
||||||
|
-#else
|
||||||
|
+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
void (*dtor) (const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data);
|
||||||
|
+#else
|
||||||
|
+ void (*dtor) (const v8::WeakCallbackInfo<SWIGV8_Proxy> &data);
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -241,9 +243,12 @@ SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Isolate *, v8::Persistent< v8::Val
|
||||||
|
SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter);
|
||||||
|
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
|
||||||
|
SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Isolate *, v8::Persistent< v8::Object > *object, SWIGV8_Proxy *proxy) {
|
||||||
|
-#else
|
||||||
|
+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) {
|
||||||
|
SWIGV8_Proxy *proxy = data.GetParameter();
|
||||||
|
+#else
|
||||||
|
+SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) {
|
||||||
|
+ SWIGV8_Proxy *proxy = data.GetParameter();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
delete proxy;
|
||||||
|
@@ -312,12 +317,18 @@ SWIGRUNTIME void SWIGV8_SetPrivateData(v8::Handle<v8::Object> obj, void *ptr, sw
|
||||||
|
} else {
|
||||||
|
cdata->handle.MakeWeak(cdata, SWIGV8_Proxy_DefaultDtor);
|
||||||
|
}
|
||||||
|
-#else
|
||||||
|
+#elifif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) {
|
||||||
|
cdata->handle.SetWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor);
|
||||||
|
} else {
|
||||||
|
cdata->handle.SetWeak(cdata, SWIGV8_Proxy_DefaultDtor);
|
||||||
|
}
|
||||||
|
+#else
|
||||||
|
+ if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) {
|
||||||
|
+ cdata->handle.SetWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor, v8::WeakCallbackType::kParameter);
|
||||||
|
+ } else {
|
||||||
|
+ cdata->handle.SetWeak(cdata, SWIGV8_Proxy_DefaultDtor, v8::WeakCallbackType::kParameter);
|
||||||
|
+ }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710)
|
||||||
|
@@ -470,7 +481,14 @@ int SwigV8Packed_Check(v8::Handle<v8::Value> valRef) {
|
||||||
|
|
||||||
|
v8::Handle<v8::Object> objRef = valRef->ToObject();
|
||||||
|
if(objRef->InternalFieldCount() < 1) return false;
|
||||||
|
+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
v8::Handle<v8::Value> flag = objRef->GetHiddenValue(SWIGV8_STRING_NEW("__swig__packed_data__"));
|
||||||
|
+#else
|
||||||
|
+ v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("__swig__packed_data__"));
|
||||||
|
+ v8::Local<v8::Value> flag;
|
||||||
|
+ if (!objRef->GetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey).ToLocal(&flag))
|
||||||
|
+ return false;
|
||||||
|
+#endif
|
||||||
|
return (flag->IsBoolean() && flag->BooleanValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -519,10 +537,13 @@ SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Isolate *isolate, v8::Persist
|
||||||
|
SwigV8PackedData *cdata = static_cast<SwigV8PackedData *>(parameter);
|
||||||
|
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
|
||||||
|
SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Isolate *isolate, v8::Persistent<v8::Object> *object, SwigV8PackedData *cdata) {
|
||||||
|
-#else
|
||||||
|
+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackData<v8::Object, SwigV8PackedData> &data) {
|
||||||
|
v8::Local<v8::Object> object = data.GetValue();
|
||||||
|
SwigV8PackedData *cdata = data.GetParameter();
|
||||||
|
+#else
|
||||||
|
+SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackInfo<SwigV8PackedData> &data) {
|
||||||
|
+ SwigV8PackedData *cdata = data.GetParameter();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
delete cdata;
|
||||||
|
@@ -537,7 +558,7 @@ SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackData<v8::Ob
|
||||||
|
object->Dispose(isolate);
|
||||||
|
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
|
||||||
|
object->Dispose();
|
||||||
|
-#else
|
||||||
|
+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
object.Clear();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
@@ -550,7 +571,12 @@ v8::Handle<v8::Value> SWIGV8_NewPackedObj(void *data, size_t size, swig_type_inf
|
||||||
|
// v8::Handle<v8::Object> obj = SWIGV8_OBJECT_NEW();
|
||||||
|
v8::Local<v8::Object> obj = SWIGV8_OBJECT_NEW();
|
||||||
|
|
||||||
|
+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
obj->SetHiddenValue(SWIGV8_STRING_NEW("__swig__packed_data__"), SWIGV8_BOOLEAN_NEW(true));
|
||||||
|
+#else
|
||||||
|
+ v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("__swig__packed_data__"));
|
||||||
|
+ obj->SetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey, SWIGV8_BOOLEAN_NEW(true));
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031511)
|
||||||
|
obj->SetPointerInInternalField(0, cdata);
|
||||||
|
@@ -573,9 +599,11 @@ v8::Handle<v8::Value> SWIGV8_NewPackedObj(void *data, size_t size, swig_type_inf
|
||||||
|
cdata->handle.MakeWeak(v8::Isolate::GetCurrent(), cdata, _wrap_SwigV8PackedData_delete);
|
||||||
|
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
|
||||||
|
cdata->handle.MakeWeak(cdata, _wrap_SwigV8PackedData_delete);
|
||||||
|
-#else
|
||||||
|
+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
cdata->handle.SetWeak(cdata, _wrap_SwigV8PackedData_delete);
|
||||||
|
// v8::V8::SetWeak(&cdata->handle, cdata, _wrap_SwigV8PackedData_delete);
|
||||||
|
+#else
|
||||||
|
+ cdata->handle.SetWeak(cdata, _wrap_SwigV8PackedData_delete, v8::WeakCallbackType::kParameter);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710)
|
||||||
|
|
||||||
|
From 9ce8d7e7c99e75163318428aeff6e60d398fcdca Mon Sep 17 00:00:00 2001
|
||||||
|
From: Patrick Schneider <patrick.schneider@meetnow.eu>
|
||||||
|
Date: Thu, 13 Apr 2017 19:39:44 +0200
|
||||||
|
Subject: [PATCH 2/2] Remove warnings on Node 6.x aka V8 5.0 and 5.1
|
||||||
|
|
||||||
|
The proposed changes targetted at 5.2 (or 5.4 to be more precise, since there is no Node release with V8 5.2 or 5.3) work for lower versions as well and bust the deprecation warnings there.
|
||||||
|
---
|
||||||
|
Lib/javascript/v8/javascriptcode.swg | 14 +++++++-------
|
||||||
|
Lib/javascript/v8/javascripthelpers.swg | 8 ++++----
|
||||||
|
Lib/javascript/v8/javascriptinit.swg | 4 ++--
|
||||||
|
Lib/javascript/v8/javascriptrun.swg | 16 ++++++++--------
|
||||||
|
4 files changed, 21 insertions(+), 21 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Lib/javascript/v8/javascriptcode.swg b/Lib/javascript/v8/javascriptcode.swg
|
||||||
|
index b8c5089816..c4aaf3db0c 100644
|
||||||
|
--- a/Lib/javascript/v8/javascriptcode.swg
|
||||||
|
+++ b/Lib/javascript/v8/javascriptcode.swg
|
||||||
|
@@ -133,7 +133,7 @@ static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Value> object, v
|
||||||
|
SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter);
|
||||||
|
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
|
||||||
|
static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Object> *object, SWIGV8_Proxy *proxy) {
|
||||||
|
-#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
+#elif (V8_MAJOR_VERSION-0) < 5
|
||||||
|
static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) {
|
||||||
|
v8::Local<v8::Object> object = data.GetValue();
|
||||||
|
SWIGV8_Proxy *proxy = data.GetParameter();
|
||||||
|
@@ -150,7 +150,7 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
|
||||||
|
}
|
||||||
|
delete proxy;
|
||||||
|
|
||||||
|
-#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
+#if (V8_MAJOR_VERSION-0) < 5
|
||||||
|
object.Clear();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@@ -160,7 +160,7 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
|
||||||
|
object.Dispose(isolate);
|
||||||
|
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x032100)
|
||||||
|
object->Dispose(isolate);
|
||||||
|
-#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
+#elif (V8_MAJOR_VERSION-0) < 5
|
||||||
|
object->Dispose();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
@@ -182,7 +182,7 @@ static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Value> object, v
|
||||||
|
SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter);
|
||||||
|
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
|
||||||
|
static void $jswrapper(v8::Isolate *isolate, v8::Persistent< v8::Object> *object, SWIGV8_Proxy *proxy) {
|
||||||
|
-#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
+#elif (V8_MAJOR_VERSION-0) < 5
|
||||||
|
static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) {
|
||||||
|
v8::Local<v8::Object> object = data.GetValue();
|
||||||
|
SWIGV8_Proxy *proxy = data.GetParameter();
|
||||||
|
@@ -205,7 +205,7 @@ static void $jswrapper(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) {
|
||||||
|
object->Dispose(isolate);
|
||||||
|
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
|
||||||
|
object->Dispose();
|
||||||
|
-#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
+#elif (V8_MAJOR_VERSION-0) < 5
|
||||||
|
object.Clear();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
@@ -219,7 +219,7 @@ static void $jswrapper(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) {
|
||||||
|
* ----------------------------------------------------------------------------- */
|
||||||
|
%fragment("js_getter", "templates")
|
||||||
|
%{
|
||||||
|
-#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
+#if (V8_MAJOR_VERSION-0) < 5
|
||||||
|
static SwigV8ReturnValue $jswrapper(v8::Local<v8::String> property, const SwigV8PropertyCallbackInfo &info) {
|
||||||
|
#else
|
||||||
|
static SwigV8ReturnValue $jswrapper(v8::Local<v8::Name> property, const SwigV8PropertyCallbackInfo &info) {
|
||||||
|
@@ -245,7 +245,7 @@ fail:
|
||||||
|
* ----------------------------------------------------------------------------- */
|
||||||
|
%fragment("js_setter", "templates")
|
||||||
|
%{
|
||||||
|
-#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
+#if (V8_MAJOR_VERSION-0) < 5
|
||||||
|
static void $jswrapper(v8::Local<v8::String> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid &info) {
|
||||||
|
#else
|
||||||
|
static void $jswrapper(v8::Local<v8::Name> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid &info) {
|
||||||
|
diff --git a/Lib/javascript/v8/javascripthelpers.swg b/Lib/javascript/v8/javascripthelpers.swg
|
||||||
|
index 74610793af..7b8a5ec237 100644
|
||||||
|
--- a/Lib/javascript/v8/javascripthelpers.swg
|
||||||
|
+++ b/Lib/javascript/v8/javascripthelpers.swg
|
||||||
|
@@ -6,7 +6,7 @@ typedef v8::InvocationCallback SwigV8FunctionCallback;
|
||||||
|
typedef v8::AccessorGetter SwigV8AccessorGetterCallback;
|
||||||
|
typedef v8::AccessorSetter SwigV8AccessorSetterCallback;
|
||||||
|
typedef v8::AccessorInfo SwigV8PropertyCallbackInfoVoid;
|
||||||
|
-#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
+#elif (V8_MAJOR_VERSION-0) < 5
|
||||||
|
typedef v8::FunctionCallback SwigV8FunctionCallback;
|
||||||
|
typedef v8::AccessorGetterCallback SwigV8AccessorGetterCallback;
|
||||||
|
typedef v8::AccessorSetterCallback SwigV8AccessorSetterCallback;
|
||||||
|
@@ -70,14 +70,14 @@ SWIGRUNTIME void SWIGV8_AddStaticFunction(v8::Handle<v8::Object> obj, const char
|
||||||
|
*/
|
||||||
|
SWIGRUNTIME void SWIGV8_AddStaticVariable(v8::Handle<v8::Object> obj, const char* symbol,
|
||||||
|
SwigV8AccessorGetterCallback getter, SwigV8AccessorSetterCallback setter) {
|
||||||
|
-#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
+#if (V8_MAJOR_VERSION-0) < 5
|
||||||
|
obj->SetAccessor(SWIGV8_SYMBOL_NEW(symbol), getter, setter);
|
||||||
|
#else
|
||||||
|
obj->SetAccessor(SWIGV8_CURRENT_CONTEXT(), SWIGV8_SYMBOL_NEW(symbol), getter, setter);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
-#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
+#if (V8_MAJOR_VERSION-0) < 5
|
||||||
|
SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::String> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid& info)
|
||||||
|
#else
|
||||||
|
SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::Name> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid& info)
|
||||||
|
@@ -87,7 +87,7 @@ SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::Name> property, v8::Local<v8
|
||||||
|
char msg[512];
|
||||||
|
int res;
|
||||||
|
|
||||||
|
-#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
+#if (V8_MAJOR_VERSION-0) < 5
|
||||||
|
property->WriteUtf8(buffer, 256);
|
||||||
|
res = sprintf(msg, "Tried to write read-only variable: %s.", buffer);
|
||||||
|
#else
|
||||||
|
diff --git a/Lib/javascript/v8/javascriptinit.swg b/Lib/javascript/v8/javascriptinit.swg
|
||||||
|
index 86008d927f..e83f478d9d 100644
|
||||||
|
--- a/Lib/javascript/v8/javascriptinit.swg
|
||||||
|
+++ b/Lib/javascript/v8/javascriptinit.swg
|
||||||
|
@@ -7,7 +7,7 @@ SWIG_V8_SetModule(void *, swig_module_info *swig_module) {
|
||||||
|
v8::Local<v8::Object> global_obj = SWIGV8_CURRENT_CONTEXT()->Global();
|
||||||
|
v8::Local<v8::External> mod = SWIGV8_EXTERNAL_NEW(swig_module);
|
||||||
|
assert(!mod.IsEmpty());
|
||||||
|
-#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
+#if (V8_MAJOR_VERSION-0) < 5
|
||||||
|
global_obj->SetHiddenValue(SWIGV8_STRING_NEW("swig_module_info_data"), mod);
|
||||||
|
#else
|
||||||
|
v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("swig_module_info_data"));
|
||||||
|
@@ -18,7 +18,7 @@ SWIG_V8_SetModule(void *, swig_module_info *swig_module) {
|
||||||
|
SWIGRUNTIME swig_module_info *
|
||||||
|
SWIG_V8_GetModule(void *) {
|
||||||
|
v8::Local<v8::Object> global_obj = SWIGV8_CURRENT_CONTEXT()->Global();
|
||||||
|
-#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
+#if (V8_MAJOR_VERSION-0) < 5
|
||||||
|
v8::Local<v8::Value> moduleinfo = global_obj->GetHiddenValue(SWIGV8_STRING_NEW("swig_module_info_data"));
|
||||||
|
#else
|
||||||
|
v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("swig_module_info_data"));
|
||||||
|
diff --git a/Lib/javascript/v8/javascriptrun.swg b/Lib/javascript/v8/javascriptrun.swg
|
||||||
|
index 30002c02a3..0af9f4eb0a 100644
|
||||||
|
--- a/Lib/javascript/v8/javascriptrun.swg
|
||||||
|
+++ b/Lib/javascript/v8/javascriptrun.swg
|
||||||
|
@@ -193,7 +193,7 @@ public:
|
||||||
|
void (*dtor) (v8::Isolate *isolate, v8::Persistent< v8::Value> object, void *parameter);
|
||||||
|
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
|
||||||
|
void (*dtor) (v8::Isolate *isolate, v8::Persistent< v8::Object > *object, SWIGV8_Proxy *proxy);
|
||||||
|
-#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
+#elif (V8_MAJOR_VERSION-0) < 5
|
||||||
|
void (*dtor) (const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data);
|
||||||
|
#else
|
||||||
|
void (*dtor) (const v8::WeakCallbackInfo<SWIGV8_Proxy> &data);
|
||||||
|
@@ -243,7 +243,7 @@ SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Isolate *, v8::Persistent< v8::Val
|
||||||
|
SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter);
|
||||||
|
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
|
||||||
|
SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Isolate *, v8::Persistent< v8::Object > *object, SWIGV8_Proxy *proxy) {
|
||||||
|
-#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
+#elif (V8_MAJOR_VERSION-0) < 5
|
||||||
|
SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) {
|
||||||
|
SWIGV8_Proxy *proxy = data.GetParameter();
|
||||||
|
#else
|
||||||
|
@@ -317,7 +317,7 @@ SWIGRUNTIME void SWIGV8_SetPrivateData(v8::Handle<v8::Object> obj, void *ptr, sw
|
||||||
|
} else {
|
||||||
|
cdata->handle.MakeWeak(cdata, SWIGV8_Proxy_DefaultDtor);
|
||||||
|
}
|
||||||
|
-#elifif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
+#elif (V8_MAJOR_VERSION-0) < 5
|
||||||
|
if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) {
|
||||||
|
cdata->handle.SetWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor);
|
||||||
|
} else {
|
||||||
|
@@ -481,7 +481,7 @@ int SwigV8Packed_Check(v8::Handle<v8::Value> valRef) {
|
||||||
|
|
||||||
|
v8::Handle<v8::Object> objRef = valRef->ToObject();
|
||||||
|
if(objRef->InternalFieldCount() < 1) return false;
|
||||||
|
-#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
+#if (V8_MAJOR_VERSION-0) < 5
|
||||||
|
v8::Handle<v8::Value> flag = objRef->GetHiddenValue(SWIGV8_STRING_NEW("__swig__packed_data__"));
|
||||||
|
#else
|
||||||
|
v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("__swig__packed_data__"));
|
||||||
|
@@ -537,7 +537,7 @@ SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Isolate *isolate, v8::Persist
|
||||||
|
SwigV8PackedData *cdata = static_cast<SwigV8PackedData *>(parameter);
|
||||||
|
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
|
||||||
|
SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Isolate *isolate, v8::Persistent<v8::Object> *object, SwigV8PackedData *cdata) {
|
||||||
|
-#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
+#elif (V8_MAJOR_VERSION-0) < 5
|
||||||
|
SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackData<v8::Object, SwigV8PackedData> &data) {
|
||||||
|
v8::Local<v8::Object> object = data.GetValue();
|
||||||
|
SwigV8PackedData *cdata = data.GetParameter();
|
||||||
|
@@ -558,7 +558,7 @@ SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackInfo<SwigV8
|
||||||
|
object->Dispose(isolate);
|
||||||
|
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
|
||||||
|
object->Dispose();
|
||||||
|
-#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
+#elif (V8_MAJOR_VERSION-0) < 5
|
||||||
|
object.Clear();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
@@ -571,7 +571,7 @@ v8::Handle<v8::Value> SWIGV8_NewPackedObj(void *data, size_t size, swig_type_inf
|
||||||
|
// v8::Handle<v8::Object> obj = SWIGV8_OBJECT_NEW();
|
||||||
|
v8::Local<v8::Object> obj = SWIGV8_OBJECT_NEW();
|
||||||
|
|
||||||
|
-#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
+#if (V8_MAJOR_VERSION-0) < 5
|
||||||
|
obj->SetHiddenValue(SWIGV8_STRING_NEW("__swig__packed_data__"), SWIGV8_BOOLEAN_NEW(true));
|
||||||
|
#else
|
||||||
|
v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("__swig__packed_data__"));
|
||||||
|
@@ -599,7 +599,7 @@ v8::Handle<v8::Value> SWIGV8_NewPackedObj(void *data, size_t size, swig_type_inf
|
||||||
|
cdata->handle.MakeWeak(v8::Isolate::GetCurrent(), cdata, _wrap_SwigV8PackedData_delete);
|
||||||
|
#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
|
||||||
|
cdata->handle.MakeWeak(cdata, _wrap_SwigV8PackedData_delete);
|
||||||
|
-#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
|
||||||
|
+#elif (V8_MAJOR_VERSION-0) < 5
|
||||||
|
cdata->handle.SetWeak(cdata, _wrap_SwigV8PackedData_delete);
|
||||||
|
// v8::V8::SetWeak(&cdata->handle, cdata, _wrap_SwigV8PackedData_delete);
|
||||||
|
#else
|
||||||
114
swig.spec
Normal file
114
swig.spec
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
Name: swig
|
||||||
|
Version: 3.0.12
|
||||||
|
Release: 22
|
||||||
|
Summary: Links C/C++/Objective C to languages for some advanced programing
|
||||||
|
License: GPLv3+ and BSD
|
||||||
|
URL: http://swig.sourceforge.net/
|
||||||
|
Source0: http://downloads.sourceforge.net/project/swig/swig/swig-%{version}/swig-%{version}.tar.gz
|
||||||
|
Source1: description.h2m
|
||||||
|
|
||||||
|
Patch0001: swig308-Do-not-use-isystem.patch
|
||||||
|
Patch0002: swig-3.0.12-Fix-testsuite-to-work-without-.-in-INC.patch
|
||||||
|
Patch0003: https://patch-diff.githubusercontent.com/raw/swig/swig/pull/968/swig-node-v7.patch
|
||||||
|
Patch0004: swig-3.0.12-Fix-generated-code-for-constant-expressions-containi.patch
|
||||||
|
Patch0005: swig-3.0.12-Fix-type-promotion-wrapping-some-non-trivial-constan.patch
|
||||||
|
Patch0006: swig-3.0.12-Correct-php-testcase.patch
|
||||||
|
Patch0007: swig-3.0.12-Fix-go-version-matching-in-configure-for-go1.10.patch
|
||||||
|
Patch0008: swig-3.0.12-Coverity-fix-issue-reported-for-SWIG_Python_FixMetho.patch
|
||||||
|
Patch0009: swig-3.0.12-Fix-Coverity-issue-reported-for-setslice-pycontainer.patch
|
||||||
|
Patch0010: swig-3.0.12-Coverity-fix-issue-reported-for-wrapper-argument-che.patch
|
||||||
|
Patch0011: swig-3.0.12-Coverity-fix-issue-reported-for-SWIG_Python_ConvertF.patch
|
||||||
|
|
||||||
|
BuildRequires: perl-interpreter pcre-devel python3-devel autoconf automake gawk dos2unix
|
||||||
|
BuildRequires: gcc-c++ help2man perl-devel perl(base) perl(Config) perl(Devel::Peek)
|
||||||
|
BuildRequires: perl(ExtUtils::MakeMaker) perl(fields) perl(Math::BigInt) perl(strict)
|
||||||
|
BuildRequires: perl(Test::More) perl(vars) perl(warnings) boost-devel bison tcl-devel
|
||||||
|
BuildRequires: lua-devel ruby-devel
|
||||||
|
|
||||||
|
Provides: %{name}-gdb = %{version}-%{release}
|
||||||
|
Obsoletes: %{name}-gdb < %{version}-%{release}
|
||||||
|
|
||||||
|
%description
|
||||||
|
SWIG is a compiler that attempts to make it easy to integrate C, C++,
|
||||||
|
or Objective-C code with scripting languages including Perl, Tcl, and
|
||||||
|
Python.In a nutshell, you give it a bunch of ANSI C/C++ declarations and
|
||||||
|
it generates an interface between C and your favorite scripting language.
|
||||||
|
However, this is only scratching the surface of what SWIG can do--some
|
||||||
|
of its more advanced features include automatic documentation generation,
|
||||||
|
module and library management, extensive customization options, and more.
|
||||||
|
|
||||||
|
%package help
|
||||||
|
Summary: Help document for the swig package
|
||||||
|
License: BSD
|
||||||
|
BuildArch: noarch
|
||||||
|
|
||||||
|
Provides: %{name}-doc = %{version}-%{release}
|
||||||
|
Obsoletes: %{name}-doc < %{version}-%{release}
|
||||||
|
|
||||||
|
%description help
|
||||||
|
Help document for the swig package.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -n %{name}-%{version} -p1
|
||||||
|
|
||||||
|
%build
|
||||||
|
./autogen.sh
|
||||||
|
|
||||||
|
%configure --without-ocaml --without-python --with-python3=%__python3 --without-go --disable-ccache;
|
||||||
|
%make_build
|
||||||
|
|
||||||
|
make check
|
||||||
|
|
||||||
|
%install
|
||||||
|
make clean-examples
|
||||||
|
|
||||||
|
cd Examples/
|
||||||
|
find -type f -name 'Makefile.in' -delete -print
|
||||||
|
|
||||||
|
rm -rf test-suite
|
||||||
|
find -type f -name '*.dsp' -delete -print
|
||||||
|
find -type f -name '*.dsw' -delete -print
|
||||||
|
|
||||||
|
for all in `find -type f`; do
|
||||||
|
dos2unix -k $all
|
||||||
|
chmod -x $all
|
||||||
|
done
|
||||||
|
cd -
|
||||||
|
|
||||||
|
%make_install
|
||||||
|
|
||||||
|
echo "Options:" >help_swig
|
||||||
|
%{buildroot}%{_bindir}/swig --help >>help_swig
|
||||||
|
|
||||||
|
sed -i -e 's/^\(\s\+-[^-]\+\)- \(.*\)$/\1 \2/' help_swig
|
||||||
|
sed -i -e 's/^\(\s\+-\w\+-[^-]*\)- \(.*\)$/\1 \2/' help_swig
|
||||||
|
|
||||||
|
cat >h2m_helper_swig <<'EOF'
|
||||||
|
[ "$1" == "--version" ] && echo "" || cat help_swig
|
||||||
|
EOF
|
||||||
|
chmod a+x h2m_helper_swig
|
||||||
|
|
||||||
|
help2man -N --section 1 ./h2m_helper_swig --include %{SOURCE1} -o %{name}.1
|
||||||
|
|
||||||
|
mkdir -p %{buildroot}%{_mandir}/man1/
|
||||||
|
install -p -m 0644 %{name}.1 %{buildroot}%{_mandir}/man1/
|
||||||
|
|
||||||
|
install -d %{buildroot}%{_datadir}/%{name}/gdb
|
||||||
|
install -pm 644 Tools/swig.gdb %{buildroot}%{_datadir}/%{name}/gdb
|
||||||
|
|
||||||
|
%files
|
||||||
|
%{_bindir}/%{name}
|
||||||
|
%{_datadir}/%{name}
|
||||||
|
%license LICENSE LICENSE-GPL LICENSE-UNIVERSITIES
|
||||||
|
%doc COPYRIGHT
|
||||||
|
%exclude %{_datadir}/%name/%{version}/octave/std_carray.i
|
||||||
|
|
||||||
|
%files help
|
||||||
|
%license LICENSE LICENSE-GPL LICENSE-UNIVERSITIES
|
||||||
|
%doc Doc Examples README TODO
|
||||||
|
%doc ANNOUNCE CHANGES CHANGES.current
|
||||||
|
%{_mandir}/man1/swig.1*
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Fri Nov 29 2019 wutao <wutao61@huawei.com> - 3.0.12-22
|
||||||
|
- Package init
|
||||||
13
swig308-Do-not-use-isystem.patch
Normal file
13
swig308-Do-not-use-isystem.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
diff -up swig-3.0.8/configure.ac.orig swig-3.0.8/configure.ac
|
||||||
|
--- swig-3.0.8/configure.ac.orig 2016-02-02 16:01:09.094852303 +0100
|
||||||
|
+++ swig-3.0.8/configure.ac 2016-02-02 16:01:42.096702679 +0100
|
||||||
|
@@ -131,7 +131,8 @@ AC_SUBST(BOOST_CPPFLAGS)
|
||||||
|
dnl How to specify include directories that may be system directories.
|
||||||
|
# -I should not be used on system directories (GCC)
|
||||||
|
if test "$GCC" = yes; then
|
||||||
|
- ISYSTEM="-isystem "
|
||||||
|
+# ISYSTEM="-isystem "
|
||||||
|
+ ISYSTEM="-I"
|
||||||
|
else
|
||||||
|
ISYSTEM="-I"
|
||||||
|
fi
|
||||||
Loading…
x
Reference in New Issue
Block a user