*** empty log message ***
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@7319 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
11dc59b22e
commit
7b8172040b
1 changed files with 39 additions and 0 deletions
|
|
@ -1,6 +1,45 @@
|
||||||
Version 1.3.26 (in progress)
|
Version 1.3.26 (in progress)
|
||||||
============================
|
============================
|
||||||
|
|
||||||
|
06/27/2005: wsfulton
|
||||||
|
Functions declared as 'extern' no longer have an additional function declaration added to the
|
||||||
|
wrapper files. There are some cases where SWIG does not get this right, eg bug #1205859 (extern
|
||||||
|
functions with default arguments declared in a namespace). Also SWIG cannot get non-standard
|
||||||
|
calling conventions correct, eg Windows calling conventions are usually handled like this:
|
||||||
|
|
||||||
|
%{
|
||||||
|
#define DLLIMPORT __declspec(dllimport)
|
||||||
|
#define STDCALL __stdcall
|
||||||
|
%}
|
||||||
|
#define DLLIMPORT
|
||||||
|
#define STDCALL
|
||||||
|
%inline %{
|
||||||
|
DLLIMPORT extern STDCALL void function(int);
|
||||||
|
%}
|
||||||
|
|
||||||
|
SWIG incorrectly generates:
|
||||||
|
|
||||||
|
extern void function(int);
|
||||||
|
|
||||||
|
To which there is no solution as SWIG doesn't handle non-standard calling conventions. The extra
|
||||||
|
'extern' function that SWIG generates is superfluous unless a user has forgotten to add the function
|
||||||
|
declaration into the wrappers.
|
||||||
|
|
||||||
|
The -noextern commandline argument is now redundant and a new commandline argument -addextern can
|
||||||
|
be used to obtain the original behaviour. This shouldn't be necessary unless the header file
|
||||||
|
containing the function declaration was inadvertently not added to the wrappers. To fix this
|
||||||
|
add the function declaration into your wrappers, For example, replace:
|
||||||
|
|
||||||
|
extern void foo(int);
|
||||||
|
|
||||||
|
with:
|
||||||
|
|
||||||
|
%inline %{
|
||||||
|
extern void foo(int);
|
||||||
|
%}
|
||||||
|
|
||||||
|
*** POTENTIAL INCOMPATIBILITY ***
|
||||||
|
|
||||||
06/22/2005: wsfulton
|
06/22/2005: wsfulton
|
||||||
[C#, Java, Modula3, Ocaml]
|
[C#, Java, Modula3, Ocaml]
|
||||||
The intermediary function names have been changed when wrapping variables to
|
The intermediary function names have been changed when wrapping variables to
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue