117 lines
5.3 KiB
Text
117 lines
5.3 KiB
Text
Below are the changes for the current release.
|
|
See the CHANGES file for changes in older releases.
|
|
See the RELEASENOTES file for a summary of changes in each release.
|
|
|
|
Version 3.0.7 (in progress)
|
|
===========================
|
|
|
|
2015-08-02: wsfulton
|
|
[Java] Fix potential security exploit in generated Java classes.
|
|
The swigCPtr and swigCMemOwn member variables in the generated Java
|
|
classes are now declared 'transient' by default. Further details of the exploit
|
|
in Android is being published in an academic paper as part of USENIX WOOT '15:
|
|
https://www.usenix.org/conference/woot15/workshop-program/presentation/peles.
|
|
|
|
In the unlikely event that you are relying on these members being serializable,
|
|
then you will need to override the default javabody and javabody_derived typemaps
|
|
to generate the old generated code. The relevant typemaps are in the Lib directory
|
|
in the java.swg, boost_shared_ptr.i and boost_intrusive_ptr.i files. Copy the
|
|
relevant default typemaps into your interface file and remove the 'transient' keyword.
|
|
|
|
*** POTENTIAL INCOMPATIBILITY ***
|
|
|
|
2015-07-30: wsfulton
|
|
Fix #440 - Initialise all newly created arrays when using %array_functions and %array_class
|
|
in the carrays.i library - bug is only relevant when using C++.
|
|
|
|
2015-07-29: wsfulton
|
|
[Python] Improve indentation warning and error messages for code in the following directives:
|
|
|
|
%pythonprepend
|
|
%pythonappend
|
|
%pythoncode
|
|
%pythonbegin
|
|
%feature("shadow")
|
|
|
|
Old error example:
|
|
Error: Line indented less than expected (line 3 of pythoncode)
|
|
|
|
New error example:
|
|
Error: Line indented less than expected (line 3 of %pythoncode or %insert("python") block)
|
|
as no line should be indented less than the indentation in line 1
|
|
|
|
Old warning example:
|
|
Warning 740: Whitespace prefix doesn't match (line 2 of %pythoncode or %insert("python") block)
|
|
|
|
New warning example:
|
|
Warning 740: Whitespace indentation is inconsistent compared to earlier lines (line 3 of
|
|
%pythoncode or %insert("python") block)
|
|
|
|
|
|
2015-07-28: wsfulton
|
|
[Python] Fix #475. Improve docstring indentation handling.
|
|
|
|
SWIG-3.0.5 and earlier sometimes truncated text provided in the docstring feature.
|
|
This occurred when the indentation (whitespace) in the docstring was less in the
|
|
second or later lines when compared to the first line.
|
|
SWIG-3.0.6 gave a 'Line indented less than expected' error instead of truncating
|
|
the docstring text.
|
|
Now the indentation for the 'docstring' feature is smarter and is appropriately
|
|
adjusted so that no truncation occurs.
|
|
|
|
2015-07-22: wsfulton
|
|
Support for special variable expansion in typemap attributes. Example usage expansion
|
|
in the 'out' attribute (C# specific):
|
|
|
|
%typemap(ctype, out="$*1_ltype") unsigned int& "$*1_ltype"
|
|
|
|
is equivalent to the following as $*1_ltype expands to 'unsigned int':
|
|
|
|
%typemap(ctype, out="unsigned int") unsigned int& "unsigned int"
|
|
|
|
Special variables can be used within special variable macros too. Example usage expansion:
|
|
|
|
%typemap(cstype) unsigned int "uint"
|
|
%typemap(cstype, out="$typemap(cstype, $*1_ltype)") unsigned int& "$typemap(cstype, $*1_ltype)"
|
|
|
|
Special variables are expanded first and hence the above is equivalent to:
|
|
|
|
%typemap(cstype, out="$typemap(cstype, unsigned int)") unsigned int& "$typemap(cstype, unsigned int)"
|
|
|
|
which then expands to:
|
|
|
|
%typemap(cstype, out="uint") unsigned int& "uint"
|
|
|
|
2015-07-22: lindleyf
|
|
Apply patch #439 - support for $typemap() (aka embedded typemaps or special variable
|
|
macros) in typemap attributes. A simple example where $typemap() is expanded in the
|
|
'out' attribute (C# specific):
|
|
|
|
%typemap(cstype) unsigned int "uint"
|
|
%typemap(cstype, out="$typemap(cstype, unsigned int)") unsigned int& "$typemap(cstype, unsigned int)"
|
|
|
|
is equivalent to:
|
|
|
|
%typemap(cstype, out="uint") unsigned int& "uint"
|
|
|
|
2015-07-18: m7thon
|
|
[Python] Docstrings provided via %feature("docstring") are now quoted and added to
|
|
the tp_doc slot when using python builtin classes (-builtin). When no docstring is
|
|
provided, the tp_doc slot is set to the fully qualified C/C++ class name.
|
|
Github issues #445 and #461.
|
|
|
|
2015-07-17: kwwette
|
|
[octave] Support Octave version 4.0.0 (thanks to patches from Orion Poplawski).
|
|
|
|
2015-07-07: wsfulton
|
|
SWIG no longer generates a wrapper for a class' constructor if that class has
|
|
any base class with a private destructor. This is because your compiler should
|
|
not allow a class to be instantiated if a base has a private destructor. Some
|
|
compilers do, so if you need the old behaviour, use the "notabstract" feature, eg:
|
|
|
|
%feature("notabstract") Derived;
|
|
class Base {
|
|
~Base() {}
|
|
};
|
|
struct Derived : Base {};
|
|
|