Commit graph

1,643 commits

Author SHA1 Message Date
Olly Betts
b3003f1f9f [PHP] When wrapping a returned resource as an object, check if all
cases wrap it in the same class, and if so eliminate the pointless
switch statement wrapper we previously generated.
2015-01-23 13:56:13 +13:00
William S Fulton
63927da3cb Changes file update for octave shared_ptr 2015-01-22 20:09:17 +00:00
William S Fulton
b85fd875eb Update changes file 2015-01-15 20:29:53 +00:00
William S Fulton
0fc328d3d9 C++11 strongly typed enums into changes files 2015-01-15 19:51:42 +00:00
William S Fulton
bedff70793 Bump version to 3.0.5 2015-01-14 23:58:49 +00:00
William S Fulton
558ded2ceb Add 3.0.4 release information 2015-01-13 23:06:03 +00:00
William S Fulton
9d87b9f099 Revert introduction of python:defaultargs feature
See issue #294
2015-01-12 21:35:47 +00:00
Olly Betts
682b4dd843 [PHP] Fix segfault in director upcall check
Manifest only when using PHP built with ZTS enabled.
2015-01-12 13:53:01 +13:00
William S Fulton
38ba81811e Fix Python default argument handing broken since swig-3.0.3
Default values are no longer generated as Python code by default.
They must be explicitly turned on using the "python:defaultargs" feature.

Closes #294
Closes #296

The problems in these two issues when "python:defaultargs" is turned
on still need to be fixed and should be addressed in separate patches.
The important thing is the default code generation is now fixed.
2015-01-09 00:34:17 +00:00
Olly Betts
bfa570e404 Handle "constexpr explicit" and "constexpr static" 2015-01-09 11:47:40 +13:00
Olly Betts
87bdaa3910 Allow C++11 "explicit constexpr" 2015-01-08 15:56:50 +13:00
Olly Betts
62670e756e Improve errors for missing ; and unexpected ) 2015-01-08 15:27:57 +13:00
Olly Betts
ce90ff6a77 When reporting an error for a construct which hasn't been terminated
when the end of the file is reached, report it at the start line rather
than "EOF" as then tools like editors and IDEs will take you to a
generally more useful place for fixing the problem.
2015-01-08 13:19:17 +13:00
Olly Betts
51487c1acc Improve error message for extraneous '%}'. 2015-01-08 12:47:12 +13:00
Olly Betts
04715f74e2 Improve error message when an unknown SWIG directive is used
This previously gave the cryptic "Error: Syntax error in input(1).", but
now gives "Error: Unknown directive '%foo'."
2015-01-08 12:07:54 +13:00
Olly Betts
cd16059c66 Provide -cppext as a general command line option
Provide -cppext as a general command line option for setting the
extension used for generated C++ files (previously it was specific
to the PHP backend).  Deprecate the equivalent -suffix option
provided by the Ocaml backend, but continue to support that for
now.
2015-01-08 10:54:37 +13:00
William S Fulton
73222a1cd1 Bump version to 3.0.4 2014-12-31 01:22:16 +00:00
William S Fulton
5ec7fe578b Add 3.0.3 release information 2014-12-29 21:35:28 +00:00
William S Fulton
926c9d3200 Minor tweaks to the changes file 2014-12-29 21:35:23 +00:00
William S Fulton
ee35389d22 Fix abort using template default parameters
Closes #280
2014-12-28 10:39:53 +00:00
Robert Stone
03570f85f2 [Perl] tidy "warning: duplicate 'extern' declaration specifier" when building generated code under clang 2014-12-27 20:45:11 -08:00
Robert Stone
c432073626 Issue #282 perl5 archlib vs archlibexp 2014-12-27 12:48:58 -08:00
William S Fulton
ae555c2339 Fix templated constructors regression
Templated constructors were incorrectly ignored because SWIG thought they were
methods without a return type.
Regression introduced in swig-3.0.0
Closes #245.
2014-12-09 23:48:37 +00:00
William S Fulton
8c77d4be89 Document new C++11 strongly typed enumerations support. 2014-12-07 17:10:07 +00:00
William S Fulton
fcef37d682 Fix incorrect symbol clash error in C# and Java when using %rename for enums
When using using 'simple enum' wrappers
2014-11-21 19:50:23 +00:00
William S Fulton
3855b96459 Update changes file 2014-10-29 23:11:09 +00:00
William S Fulton
bfde148887 The kwargs feature no longer turns on compactdefaultargs for languages that don't support kwargs.
Affects all languages except Python and Ruby.

Closes #242
2014-10-21 07:34:51 +01:00
William S Fulton
78b904764a Merge branch 'diorcety-python_property'
* diorcety-python_property:
  Changes file entry for Python director property fix
  Python: Fix property access with director

Conflicts:
	CHANGES.current
2014-10-11 00:22:21 +01:00
William S Fulton
361e0ede60 Changes file entry for Python director property fix 2014-10-10 23:00:27 +01:00
William S Fulton
d10efb658e Merge branch 'python-builtin-test-suite'
* python-builtin-test-suite:
  Add Python -builtin Travis testing
  Bypass Python exmples not supported by -builtin
  Remove Python swigrun example
  Display testname when running the import_packages Python examples
  Fix Python 3 import_packages/relativeimport2 example clean
  Fixes when using python -builtin and STL container wrappers.
  Bypass Python tests not supported by -builtin
  Bypass Python tests not supported by -builtin
  Bypass Python tests not supported by -builtin
  Bypass Python tests not supported by -builtin
  Bypass Python tests failing with -builtin
  Bypass Python tests throwing base classes as exceptions for -builtin
  Add some more Python -builtin tests that don't work
  Disable test not relevant for Python -builtin

Conflicts:
	CHANGES.current
2014-10-10 22:49:11 +01:00
William S Fulton
bfa3d378ec Revert "Octave: drop support for Octave versions older than 3.2.0"
This reverts commit 952eee8f59.

Reverting a series of Octave commits for re-applying again without
incorrect whitespace changes.
2014-10-09 19:33:58 +01:00
William S Fulton
a89a892843 Fixes when using python -builtin and STL container wrappers.
Deletion of single elements previously failed.
Test case li_std_containers_int now works.
2014-10-07 20:58:40 +01:00
Karl Wette
952eee8f59 Octave: drop support for Octave versions older than 3.2.0
- Latest non-supported version is 3.0.5, released 2009-04-09
- Earliest supported version is 3.2.0, released 2009-06-05
2014-10-04 19:40:52 +02:00
Oliver Buchtala
0a110e5138 Merge branch 'master' of https://github.com/swig/swig
Conflicts:
	CHANGES.current
2014-09-30 22:21:24 +02:00
Oliver Buchtala
08c8df5fdd Announced changes after merging #195 and #216. 2014-09-30 22:20:06 +02:00
Ian Lance Taylor
0d6cebc7c4 [Go] In configure script, require Go 1.1 or later. 2014-09-30 12:42:21 -07:00
William S Fulton
af1093d956 Add changes note for #207
[skip ci]
2014-09-30 20:37:14 +01:00
Oliver Buchtala
53d7fc8a16 Merge branch 'Richie765-master'
Conflicts:
	CHANGES.current
2014-09-30 18:46:25 +02:00
William S Fulton
f81042057b Add changes note for #208 - array_functions initialisation 2014-09-27 16:55:46 +01:00
William S Fulton
a9ff9ab2b9 Add changes note for #187 - Ruby data sharing fix 2014-09-27 15:14:14 +01:00
William S Fulton
d03ff2b262 Changes note for #168 - JNI leak fix 2014-09-27 14:48:13 +01:00
Ian Lance Taylor
4b64ce71a3 [Go] Adjust generated code to work with upcoming Go 1.4 release. 2014-09-25 12:10:11 -07:00
Thomas Maslach
de6b433cb1 Fix Python crash when using -threads iterating containers
Also fixes li_std_vector_enum testcase when run with -threads.

Patch supplied on swig-devel mailing list on 12 Sep with details...

==============================================
I just wanted to mention that I found a crash issue in bug..

I am using SWIG 2.0.11 with python and have –threads enabled.  I have a C++ std::vector that I instantiate in SWIG with %template.  I also have a method in a class that returns this vector.  I also include std_vector.i, btw..

When I iterate like so:

children = Action.getActionList()
for child in children:
  pass

Everything is fine..

When I iterate like this:

for child in Action.getActionList()
  pass

Product crashes.

The problem is the following.  This code gets called first:

SWIGINTERN PyObject *_wrap_delete_SwigPyIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
  PyObject *resultobj = 0;
  swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ;
  void *argp1 = 0 ;
  int res1 = 0 ;
  PyObject * obj0 = 0 ;

  if(!PyArg_UnpackTuple(args,(char *)"delete_SwigPyIterator",1,1,&obj0)) SWIG_fail;
  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_DISOWN |  0 );
  if (!SWIG_IsOK(res1)) {
    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_SwigPyIterator" "', argument " "1"" of type '" "swig::SwigPyIterator *""'");
  }
  arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1);
  {
    SWIG_PYTHON_THREAD_BEGIN_ALLOW;
    delete arg1;
    SWIG_PYTHON_THREAD_END_ALLOW;
  }
  resultobj = SWIG_Py_Void();
  return resultobj;
fail:
  return NULL;
}

Note the SWIG_PYTHON_THREAD_BEGIN_ALLOW/END_ALLOW. In between those two statements, we delete arg1.  That in turn will eventually end up in this code:

namespace swig {
  class SwigPtr_PyObject {
  protected:
    PyObject *_obj;

  public:
    … snip! …
    ~SwigPtr_PyObject()
    {
      Py_XDECREF(_obj);
    }

Uh-oh!  We call Py_XDECREF when we aren’t supposed to because we are in a SWIG_PYTHON_THREAD_BEGIN_ALLOW/END_ALLOW section!

This takes care of the issue:

namespace swig {
  class SwigPtr_PyObject {
  protected:
    PyObject *_obj;

  public:
    … snip! …
    ~SwigPtr_PyObject()
    {
      SWIG_PYTHON_THREAD_BEGIN_BLOCK;
      Py_XDECREF(_obj);
      SWIG_PYTHON_THREAD_END_BLOCK;
    }

There are several other methods in this class that use the Python API, but don’t have the BEGIN/END block defined.  I’m not sure if they are required for all of them, but I believe they are..

I have attached a modified pyclasses.swg with what I believe are the correct changes.  This code is from 2.0.11, but as far as I can tell, it’s the same as what is in 3.0.2…

Apologies for not doing more here (making/running tests, getting it in the code repository, etc..), but I’m under some pressure to get some unrelated things done…
2014-09-23 22:33:25 +01:00
William S Fulton
15152596f2 Change file for #228 and #229 2014-09-17 22:19:07 +01:00
Olly Betts
1a99212c2c [PHP] Add support for specifying any PHP interfaces a wrapped class
implements, e.g.: %typemap("phpinterfaces") MyIterator "Iterator";
2014-09-12 12:48:37 -03:00
Olly Betts
e12322df86 [PHP] Fix throwing a PHP exception through C++ from a subclassed
director method - PHP NULL gets returned by the subclassed method
in this case, so the directorout typemap needs to allow that (at
least if an exception is active).
2014-09-11 13:09:08 -03:00
Ian Lance Taylor
acaaa0f31f [Go] Add goargout typemap. 2014-09-09 11:28:04 -07:00
Olly Betts
0dd7b61c57 Fix segmentation faults with directors in PHP >= 5.4 2014-09-09 13:39:30 -03:00
Ian Lance Taylor
1addbb46a8 [Go] Add imtype, goin, goout, godirectorin, and godirectorout
typemaps, to support writing Go code to convert between types.
2014-09-05 17:54:19 -07:00
Olly Betts
f3a6c55929 [Python] Fix regression in indentation of python code produced with -modern,
introduced by changes in #188.  Reported by fabiencastan in #218.
2014-09-02 02:34:01 -03:00