Commit graph

3,958 commits

Author SHA1 Message Date
William S Fulton
9f1b051c16 Bypass Python tests failing with -builtin
Reverse operators not supported in builtin types
2014-10-07 20:58:39 +01:00
William S Fulton
bbad7f96ab Bypass Python tests throwing base classes as exceptions for -builtin
Throwing builtin classes as exceptions is not supported
2014-10-07 20:58:30 +01:00
Anthony Li
41e9ccae7c Go: fix overload functions with polymorphic issue 2014-10-06 20:01:38 +08:00
Anthony Li
d0b6a4bfc5 del tmp files 2014-10-06 19:35:33 +08:00
Anthony Li
60da096a07 GoLang:fix overload functions with polymorphic issue 2014-10-06 19:26:07 +08: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
Karl Wette
6c04378e20 Octave: simplify Examples/octave/example.mk 2014-10-04 19:18:31 +02:00
Karl Wette
a93d5eac4e Octave: turn on autodoc in examples, so that feature is tested 2014-10-04 13:28:46 +02:00
Karl Wette
0d16b19122 Octave: remove '\' line continuation in director_detect_runme.m
- Deprecated in Octave 3.8.1
2014-10-04 13:28:46 +02:00
William S Fulton
34eb4b15d3 Add some more Python -builtin tests that don't work 2014-10-02 19:08:58 +01:00
Yann Diorcet
558af639bd Python: Fix property access with director 2014-10-01 11:07:02 +02:00
William S Fulton
0fb34cb019 Disable test not relevant for Python -builtin 2014-10-01 07:57:23 +01:00
William S Fulton
a06dff17ad Merge pull request #207 from johan-hake/johanhake/fix-206-swig-relative-import
Fix issue with relative import when using single header file import [Python]
2014-09-30 20:22:55 +01:00
Oliver Buchtala
53d7fc8a16 Merge branch 'Richie765-master'
Conflicts:
	CHANGES.current
2014-09-30 18:46:25 +02:00
Johan Hake
de4f30bd3c Small fixes to the relative import fix.
-- Now the tests actually runs
  -- Corrected the syntax for the fix in the yacc file
2014-09-29 17:37:41 +02:00
Simon Marchetto
35ff88709e scilab: fix tests having too long identifier names 2014-09-29 17:32:49 +02:00
Simon Marchetto
7307d967d0 scilab: fix tests having too long identifier names 2014-09-29 14:52:05 +02:00
Simon Marchetto
78360b4d1b scilab: fix allprotected test 2014-09-26 17:23:41 +02:00
Simon Marchetto
8b998cb538 scilab: truncates too long (struct, class) member names 2014-09-26 17:23:27 +02:00
Simon Marchetto
fb1b9432ec scilab: add li_std_string_extra test 2014-09-25 16:08:36 +02:00
Simon Marchetto
3ca185197c scilab: truncates too long identifier names (in addition to display warnings) 2014-09-25 14:29:52 +02:00
Simon Marchetto
d421884a3b scilab: fix li_std_except test error codes 2014-09-25 09:33:53 +02:00
Simon Marchetto
b42375a257 scilab: fix tests returning wrong error code 2014-09-24 12:24:41 +02:00
Simon Marchetto
a2c2aaec80 scilab: fix test-suite (scripts were not executed) 2014-09-24 11:44:38 +02: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
783e816d89 Testcase warning suppression 2014-09-23 19:54:13 +01:00
William S Fulton
8128b1e12f For Android examples, replace hard coded tool names with those detected at configure time. 2014-09-15 19:44:18 +01:00
Simon Marchetto
ef687d801e scilab: fix C++ examples cleaning 2014-09-15 10:22:42 +02: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
Simon Marchetto
d89f3bde90 scilab: fix Examples Makefile exit code 2014-09-12 12:04:40 +02: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
Olly Betts
fa94a29df4 Fix comment typo 2014-09-11 13:06:17 -03:00
Simon Marchetto
2bcd768909 scilab: display loading errors in examples 2014-09-11 08:56:04 +02: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
Simon Marchetto
e107faf5cc scilab: remove error messages in example contract 2014-09-09 14:47:20 +02:00
Simon Marchetto
7cd7166991 scilab: remove example matrix2 warnings 2014-09-09 14:21:06 +02:00
Ian Lance Taylor
be145043df Add run test case for argout.i. 2014-09-07 15:44:12 -07: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
6eaec9ce7c Update expected output for pp_constant error test 2014-09-04 09:29:20 -03:00
Olly Betts
b9fe7b5f00 Disable case in pp_constant.i which never actually worked 2014-09-03 17:18:11 -03:00
William S Fulton
ae6782ea34 Suppress testcase warning 2014-09-03 20:07:50 +01:00
William S Fulton
ea634d54a5 Synchronize common scilab examples with other languages 2014-09-03 07:18:10 +01:00
Olly Betts
d3b3ff2c78 Fix comment typo 2014-09-02 23:12:35 -03:00
William S Fulton
a41efbd0f7 File renames in Scilab std_list example
Conform to usual file naming used in SWIG examples.
2014-09-02 20:34:19 +01:00
William S Fulton
d3a54e50f8 Have just one Scilab constants example
Same example as other languages, but using %scilabconst(1)
2014-09-02 20:29:45 +01:00
William S Fulton
2831d891cd Use CXXSRCS for testing for Scilab like other languages 2014-09-02 20:12:19 +01:00
William S Fulton
7acf8de21e Scilab overloaded method testcase warning suppression 2014-09-01 19:56:39 +01:00
William S Fulton
b707ee0fc8 Suppress Identifier name exceeds 24 characters warning in Scilab example 2014-09-01 19:47:49 +01:00
William S Fulton
a022dc44cd Add RUNPIPE back in for Scilab examples 2014-09-01 19:46:56 +01:00