Commit graph

3,344 commits

Author SHA1 Message Date
Li Shengqiu
bac85d5b1a [Go] Fix argument names in inherited functions #795 (#797)
* [Go] Fix argument names in inherited functions #795

This commit fixes a wrong argument name replacement in the inherited functions as well as a memory leak.

* Add testcase for #795

* Move variable_replacement testcase into common

* Move variable_replacement testcase into common
2016-09-27 15:08:47 +13:00
William S Fulton
848628ae91 More flexible python builtin slots
The closure names used for builtin slots are mangled with their functype so
 that overloaded C++ method names can be used for multiple slots.
For example:
%feature("python:slot", "mp_subscript", functype="binaryfunc") SimpleArray::__getitem__;
%feature("python:slot", "sq_item", functype="ssizeargfunc") SimpleArray::__getitem__(Py_ssize_t n);
will generate closures:
  SWIGPY_SSIZEARGFUNC_CLOSURE(_wrap_SimpleArray___getitem__) /* defines _wrap_SimpleArray___getitem___ssizeargfunc_closure */
  SWIGPY_BINARYFUNC_CLOSURE(_wrap_SimpleArray___getitem__) /* defines _wrap_SimpleArray___getitem___binaryfunc_closure */
2016-09-25 14:15:38 +01:00
William S Fulton
5b8e8fa107 Merge pull request #793 from q-p/bad_cast
Add std::bad_cast to std_except.i
2016-09-25 14:12:01 +01:00
Olly Betts
1adfe2f537 [PHP] Fix code generated for feature("director:except")
Previously the return value of call_user_function() was ignored and we
checked an uninitialised value instead.  Fixes #627.  Based on patch
from Sergey Seroshtan.
2016-09-25 14:42:04 +13:00
William S Fulton
0769e9b727 Fix iterators for containers of NULL pointers (or Python None) when using -builtin.
Previously iteration would stop at the first element that had a NULL pointer value.
2016-09-17 17:53:48 +01:00
Daniel Vollmer
2dc87d7485 Add std::bad_cast to std_except.i
This exception occurs when dynamic_cast<T&> fails.

Fixes #783.
2016-09-17 10:26:54 +02:00
Olly Betts
b138f054e5 [Javascript] Fix SWIG_exception() macro (#792)
Fix SWIG_exception() macro to return from the current function.
Fixes #789, reported by Julien Dutriaux.
2016-09-17 17:29:42 +12:00
Olly Betts
26bbc96d58 Arrange to return after calling zend_throw_exception()
Fixes github issue#240.
2016-09-16 17:54:02 +12:00
Olly Betts
a4015acaca [PHP] Fix out typemap for member function pointers
The existing typemap was just broken - it correctly created the resource
and then did nothing with it, and instead tried to register the member
pointer as a normal pointer, which is never going to work as it's larger
than a normal pointer.

Add cpp_basic_runme.php as a regression test for this.
2016-09-02 09:51:18 +12:00
Olly Betts
888e9c6fec Use preg_match() in PHP test harness code
ereg() and eregi() were deprecated in PHP 5.3.0 and removed in PHP 7.0.0,
and preg_match() has been available since PHP4.
2016-09-02 09:09:24 +12:00
William S Fulton
5b7c08c214 Make Python builtin types hashable by default
Default hash is the underlying C/C++ pointer.
This matches up with testing for equivalence (Py_EQ in SwigPyObject_richcompare)
which compares the pointers.
2016-08-23 19:06:36 +01:00
William S Fulton
4f777b181c Correct notes on customising Python builtin comparison operators
Also add example for python:compare feature
2016-08-22 07:22:40 +01:00
William S Fulton
4c0c802aa0 Add Python builtin tp_dealloc override test 2016-08-19 18:35:51 +01:00
William S Fulton
f778ee19df Python builtin hashfunc closure fix
If the wrong return type in the hash function was used, an error:
  SystemError: error return without exception set
was raised

Add some tests for testing builtin slots
2016-08-18 07:10:54 +01:00
William S Fulton
4ab3af90cb Merge branch 'stl-vector-ptrs'
* stl-vector-ptrs:
  Test case warning fixes for nodejs
  Fix testcase causing nodejs test failure
  UTL STL container descriptor checks
  Fix std::vector of pointers which failed if a pointer to a pointer of the container element type existed (Python)
  Remove unused traits.swg
2016-08-01 06:55:01 +01:00
William S Fulton
56ab717ff3 Test case warning fixes for nodejs
nodejs 4.2.1 on Ubuntu Xenial Xerus
2016-07-30 21:23:57 +01:00
William S Fulton
0177937f7e Fix testcase causing nodejs test failure 2016-07-30 15:00:55 +01:00
Simon Marchetto
95a5def328 scilab: fix issue #755 2016-07-29 11:52:26 +02:00
William S Fulton
6e9184b6f8 Fix std::vector of pointers which failed if a pointer to a pointer of the container element type existed (Python)
Closes SF Bug 2359417 created after commit 93f0390322 (svn rev 10958)
2016-07-28 22:51:22 +01:00
William S Fulton
9c3f608ef7 Remove unused traits.swg
This file has code that looks like it was migrated to Lib/std/std_common.i
2016-07-27 18:46:23 +01:00
William S Fulton
b24e970a28 Merge branch 'wkalinin-nested-ignore-fix'
* wkalinin-nested-ignore-fix:
  renamed test module, in accordance with other tests
  function body fixed
  added foo() definition to satisfy some test linking fails
  func() renamed to foo() for 'go'
  fixed test-suite/nested_ignore.i
  test for #662
  fix for nested ignored types

Closes #662
2016-06-26 00:33:19 +01:00
Lior Goldberg
c363a93d69 Added support for type alias 2016-06-22 23:13:28 +03:00
William S Fulton
86fd5c9858 Fix autodoc testcase for python -fastproxy
Also fixes -O.
This is a minimal change avoiding the differences in the function names
when -fastproxy is used until autodoc code is improved with doxygen
changes.

Closes #721.
2016-06-22 00:15:05 +01:00
William S Fulton
3459099fb8 %shared_ptr and %template testcase modified to work for python -O
Testcase has now been modified to mask the problem by providing the default parameter 'int' in:
%shared_ptr(Space::BaseDefault<short, int>)
If this is not done then d fails to convert to BaseDefault<short>&

This needs fixing in SWIG, but the problem is masked for now, so that the python
testcase works when run with the -O option.
2016-06-21 19:49:27 +01:00
William S Fulton
38cda92938 smartptr inheritance fix when using templates and typedefs
Fixes SF bug 3333549 - %shared_ptr fixes when the type is a template using
template parameters that are typedef'd to another type.

Also fixes python -O optimization where the smart pointer conversion to the
base class needs to work because of the virtual methods that have been
optimized away.
2016-06-21 07:00:56 +01:00
William S Fulton
cc7319f52f Replace assert from Python testcases with code that always runs.
assert code is sometimes not executed, eg when running python -O.
2016-06-19 20:11:51 +01:00
Vladimir Kalinin
4aa86c6647 renamed test module, in accordance with other tests 2016-06-08 14:19:29 +03:00
William S Fulton
2d5c32048c Only test python:abc feature when passing -py3 to swig 2016-06-06 19:10:25 +01:00
William S Fulton
260501c45f Add comment about cpp_template_repeat testcase 2016-06-01 21:25:25 +01:00
William S Fulton
fa60e9c7b0 Removing empty errors tests - template typename missing
The missing typename was not warning, but this is too
hard to provide error/warning messages given SWIG supports missing type
information.
2016-06-01 21:25:25 +01:00
William S Fulton
0f0bb3015a Removing empty error tests - this one seems to be valid C preprocessor code 2016-06-01 21:25:25 +01:00
William S Fulton
e64998d55c Removing empty errors tests - tests that are valid C/C++ code 2016-06-01 21:25:25 +01:00
William S Fulton
ddd1b38fa2 Removing empty error tests - c_default_error
C default arguments are allowed, so migrated the error test to a proper test,
as no error or warning is expected.
2016-06-01 21:25:25 +01:00
William S Fulton
b9ca9f5efc Smart pointer to %ignored class doesn't expose inherited methods fix.
Regression introduced in swig-3.0.9 by 3efdbc8
Closes #690
2016-05-31 22:10:37 +01:00
Vladimir Kalinin
e2d4542350 function body fixed 2016-05-29 01:32:10 +03:00
Vladimir Kalinin
1050f14558 added foo() definition to satisfy some test linking fails 2016-05-28 22:45:06 +03:00
William S Fulton
550da9f7ef Testcase warning suppression for vc++ 2016-05-28 15:52:44 +01:00
Vladimir Kalinin
1f1286ab75 func() renamed to foo() for 'go' 2016-05-28 16:01:09 +03:00
Vladimir Kalinin
4b3694bf15 fixed test-suite/nested_ignore.i 2016-05-28 15:32:31 +03:00
William S Fulton
db54a8d5d1 Fix unused warnings in perl wrappers 2016-05-28 09:59:16 +01:00
William S Fulton
6725b2fdf6 Fix unused variable warnings in test-suite 2016-05-28 00:45:24 +01:00
William S Fulton
43fe8aced6 Testcase workaround for missing boost::array::fill
Some older versions of boost don't have this function.
2016-05-26 20:55:28 +01:00
Vladimir Kalinin
f9ad86b0c3 test for #662 2016-05-24 22:38:50 +03:00
William S Fulton
763827c2e1 Ruby opaque pointer handling regression fix
This bug was introduced in swig-3.0.8 in #146252 adding shared_ptr
support. An ObjectPreviouslyDeleted error was incorrectly thrown
when the pointer was used as a parameter after being set to zero
via a call to 'DATA_PTR(self) = 0'.

It isn't clear to me which approach is better in this corner case,
so I've gone for backwards compatibility and restored the old behaviour.

Closes #602
2016-05-24 19:09:17 +01:00
William S Fulton
809d54b13a php test warning fix 2016-05-14 21:32:24 +01:00
William S Fulton
98a31ff633 Fix directorin SWIGTYPE typemaps to make a copy as these are used for pass by value.
Closes #434
2016-05-14 21:32:24 +01:00
William S Fulton
f2d4e2ea0d Display Rout file when R test case fails
To aid debugging
2016-05-08 00:08:10 +01:00
William S Fulton
63e2f636de Testcase fix for R
Workaround bug in R when a method with default arguments end in 'get'
2016-05-07 19:30:13 +01:00
William S Fulton
15ebf3df03 Fix assertion handling defaultargs
Occurs when using %extend for a template class and the extended methods
contain default arguments.

Closes #611
2016-05-07 12:33:29 +01:00
William S Fulton
5e6ab1d61d Merge branch 'ejulien-python_operator_overload_test_suite'
* ejulien-python_operator_overload_test_suite:
  Add __str__ to operator_overload testcase for python builtin
  Python operator_overload runtime testcase cleanup
  Work around a limitation of the Python binding generator related to the += family of operators.
  Fix Python 3 division member operator when -builtin is not used.
  Fix class member division operator.
  Remove the PY3BUILTIN switch as its behavior can be achieved with the existing SWIG_FEATURES=-builtin switch.
  Implement the operator overload test suite for Python.

Conflicts:
	Examples/test-suite/operator_overload.i
2016-05-05 23:01:35 +01:00