Commit graph

3,103 commits

Author SHA1 Message Date
Simon Marchetto
20fc167624 scilab: support typed constants (U UL L) in scilabconst(1) 2014-10-16 16:00:51 +02:00
Ian Lance Taylor
0577ff2220 [Go] Adjust last patch to avoid write-after-write data race on global
variable.  Only set the variable if another global variable is true,
but that variable is always false.  The effect is that the variable is
never written, but as far as the compiler is concerned it might escape.
2014-10-14 10:05:43 -07:00
Simon Marchetto
6791e3ac7a scilab: fix SWIG_SciString_FromChar compilation error on some compilers 2014-10-14 09:26:12 +02: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
Oliver Buchtala
53d7fc8a16 Merge branch 'Richie765-master'
Conflicts:
	CHANGES.current
2014-09-30 18:46:25 +02:00
Richard
00457b6599 Making generated code more readable 2014-09-30 12:33:49 -03:00
Oliver Buchtala
2f26948ac5 Merge branch 'patch-1' of git://github.com/zittix/swig into zittix-patch-1 2014-09-30 17:02:14 +02:00
Simon Marchetto
3997b03f4c scilab: fix int typemaps (functions and fragment names) 2014-09-29 14:56:28 +02:00
William S Fulton
54118d1d61 Merge branch 'tsuna-master'
* tsuna-master:
  Initialize C++ arrays created by array_functions' new_foo().
2014-09-27 16:51:47 +01:00
William S Fulton
1fea434400 Merge branch 'lefticus-ruby_macos_static_data_conflicts'
* lefticus-ruby_macos_static_data_conflicts:
  Fix shared data problem on MacOS 10.9 with xcode 5.1
2014-09-27 15:12:04 +01:00
William S Fulton
0d34a0f0bf Merge branch 'pingany-director_local_jstring_leak'
* pingany-director_local_jstring_leak:
  Use more conventional naming for generated Java LocalRefGuard variables
  Make more use of LocalRefGuard in Java
  fixup! Patch of http://sourceforge.net/p/swig/mailman/message/29816385
  Patch of http://sourceforge.net/p/swig/mailman/message/29816385
2014-09-27 14:33:31 +01:00
William S Fulton
f4964f5fb3 Use more conventional naming for generated Java LocalRefGuard variables 2014-09-27 14:32:03 +01:00
William S Fulton
2f5bf397ae Make more use of LocalRefGuard in Java 2014-09-27 13:56:11 +01:00
Simon Marchetto
2bfb473b6f scilab: fix li_std_string_extra test, missing std_char_traits.i 2014-09-26 11:11:44 +02:00
Simon Marchetto
95c842a9c0 scilab: fix li_std_string_extra, missing lib std_basic_string.i 2014-09-26 09:03:09 +02: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
Richard Pastrick
11d07bb45b add bool array type to arrays_csharp.i [issue #228] 2014-09-17 22:17:36 +01: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
Simon Marchetto
0567a9765d scilab: remove useless SWIG_Scilab_GetOutputPositionAndReset() 2014-09-11 14:53:28 +02:00
Simon Marchetto
f58be33005 scilab: rename function name management routines 2014-09-11 14:46:44 +02:00
Simon Marchetto
d8dd9e5484 scilab: fix li_std_vector test 2014-09-11 12:33:49 +02:00
Simon Marchetto
7289fa7e75 scilab: rename wrapper global variable fname to SwigFuncName 2014-09-11 12:14:11 +02:00
Simon Marchetto
4bb8c90101 Revert "scilab: remove useless SWIG_Scilab_SetOutput() second parameter"
This reverts commit 99c82bffa5.
2014-09-11 11:44:38 +02:00
Simon Marchetto
429af4052f Revert "scilab: fix compilation error (extra parenthesis)"
This reverts commit 7249cd6a97.
2014-09-11 11:44:15 +02:00
Simon Marchetto
c5cf834f3e Revert "scilab: fix compilation error (too many args in SWIG_Scilab_SetOutput)"
This reverts commit af822c640c.
2014-09-11 11:43:50 +02:00
Simon Marchetto
af822c640c scilab: fix compilation error (too many args in SWIG_Scilab_SetOutput) 2014-09-10 15:32:34 +02:00
Simon Marchetto
7249cd6a97 scilab: fix compilation error (extra parenthesis) 2014-09-10 15:26:14 +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
Richard
0dfc1b090f Fix duplicate symbol linker errors for Javascript/v8 2014-09-09 10:08:30 -03:00
Simon Marchetto
99c82bffa5 scilab: remove useless SWIG_Scilab_SetOutput() second parameter 2014-09-09 15:05:12 +02:00
William S Fulton
1f6b71b47b Scilab parameter name changes
Remove _ prefix in parameter names
2014-09-04 20:14:35 +01:00
William S Fulton
ffbaf424ca Fix previous commit.
li_std_vector testcase was failing. This needs diagnosing.
2014-09-04 20:14:35 +01:00
William S Fulton
53aa3ec5fc Correct global variable name in Scilab wrappers 2014-09-03 20:07:51 +01:00
Richard
911fd761b0 Minor improvements 2014-08-28 19:46:52 -05:00
Richard
b8d7cc21b9 Use macros for V8 items 2014-08-28 19:46:52 -05:00
Richard
408390d146 Fixes for v8 3.18.3 (0x031803) 2014-08-28 19:46:51 -05:00
Richard
6fee208010 Fixes for v8 3.19.2 (0x031902) 2014-08-28 19:46:51 -05:00
Richard
eeb4b5497e Fixes for v8 3.24.17 (0x032417) 2014-08-28 19:46:51 -05:00
Richard
ee88602fde Use full name 2014-08-28 19:46:51 -05:00
Richard
dea3144726 Fixes for V8 3.22.24 (0x032224) Some errors left (??) 2014-08-28 19:46:51 -05:00
Richard
fee5748499 Fixes for 3.23.18 (0x032318) 2014-08-28 19:46:51 -05:00
Richard
d4920591d4 Fixes for v8 3.24.3 (0x032403) 2014-08-28 19:46:51 -05:00
Richard
c1222ebeec Partial fixes for 3.24.40 (0x032440) - incomplete 2014-08-28 19:46:50 -05:00
Richard
3c9e16ef85 Fixed some bugs from previous commit 2014-08-28 19:46:50 -05:00
Richard
e0c0670540 Partially fixed for 3.25.30 (0x032530) - unfinished 2014-08-28 19:46:50 -05:00
Richard
e98a659246 Fixes for v8 3.21.17 (0x032117) 2014-08-28 19:46:50 -05:00
Richard
3d63f9113b Fixes for v8 3.19.18 (0x031918) 2014-08-28 19:46:50 -05:00
Richard
013fb3d22d Fixes for v8 3.19.2 (0x031902) 2014-08-28 19:46:50 -05:00