summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrant K. Kyser <brantkyser@gmail.com>2013-01-03 21:26:47 -0600
committerBrant K. Kyser <brantkyser@gmail.com>2013-01-03 21:26:47 -0600
commitd5d765554455be12eb0de831a074e2056c68ac81 (patch)
treed23816e65278da703b3cb52963858876bc8c2a6e
parentf6ce5f089f2f782a0987876737c47c7adb69ab3f (diff)
parent3e2c6bb03d07a7cbe004be91d29f711339a61e9e (diff)
downloadswig-d5d765554455be12eb0de831a074e2056c68ac81.tar.gz
Merge branch 'master' into SFbug1299
-rw-r--r--.gitignore7
-rw-r--r--ANNOUNCE8
-rw-r--r--CHANGES155
-rw-r--r--CHANGES.current156
-rw-r--r--Doc/Manual/Extending.html4
-rw-r--r--Doc/Manual/Preface.html2
-rw-r--r--Doc/Manual/Sections.html2
-rw-r--r--Doc/Manual/Windows.html14
-rw-r--r--Examples/test-suite/csharp/director_nspace_runme.cs12
-rw-r--r--Examples/test-suite/director_nspace.i96
-rw-r--r--Examples/test-suite/java/director_nspace_runme.java12
-rw-r--r--README2
-rw-r--r--Source/Modules/java.cxx7
-rw-r--r--configure.in2
14 files changed, 254 insertions, 225 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000..d4ac5207b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+# Compiled Source
+*.o
+*.class
+
+# Local PCRE
+prce
+*.gz
diff --git a/ANNOUNCE b/ANNOUNCE
index 8ac224247..1c3297a5c 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,8 +1,8 @@
-*** ANNOUNCE: SWIG 2.0.9 (16 December 2012) ***
+*** ANNOUNCE: SWIG 2.0.10 (in progress) ***
http://www.swig.org
-We're pleased to announce SWIG-2.0.9, the latest SWIG release.
+We're pleased to announce SWIG-2.0.10, the latest SWIG release.
What is SWIG?
=============
@@ -21,11 +21,11 @@ Availability
============
The release is available for download on Sourceforge at
- http://prdownloads.sourceforge.net/swig/swig-2.0.9.tar.gz
+ http://prdownloads.sourceforge.net/swig/swig-2.0.10.tar.gz
A Windows version is also available at
- http://prdownloads.sourceforge.net/swig/swigwin-2.0.9.zip
+ http://prdownloads.sourceforge.net/swig/swigwin-2.0.10.zip
Please report problems with this release to the swig-devel mailing list,
details at http://www.swig.org/mail.html.
diff --git a/CHANGES b/CHANGES
index b485badd9..d6006a91a 100644
--- a/CHANGES
+++ b/CHANGES
@@ -3,6 +3,161 @@ SWIG (Simplified Wrapper and Interface Generator)
See the CHANGES.current file for changes in the current version.
See the RELEASENOTES file for a summary of changes in each release.
+Version 2.0.9 (16 December 2012)
+================================
+
+2012-12-16: wsfulton
+ Fix garbage line number / empty file name reporting for some missing
+ '}' or ')' error messages.
+
+2012-12-15: kkaempf
+ [Ruby] Apply patch 3530444, Class#methods and Class#constants returns array of
+ symbols in Ruby 1.9+
+
+2012-12-14: kkaempf
+ [Ruby] Apply patch 3530439 and finally replace all occurences of the STR2CSTR() macro
+ with StringValuePtr(). STR2CSTR was deprecated since years and got removed in Ruby 1.9
+
+2012-12-14: kkaempf
+ [Ruby] Applied patches #3530442 and 3530443 to adapt compile and runtime include
+ paths to match Ruby 1.9+
+
+2012-12-14: wsfulton
+ [CFFI] Fix #3161614 - Some string constants are incorrect
+
+2012-12-13: wsfulton
+ [CFFI] Fix #3529690 - Fix incorrect constant names.
+
+2012-12-12: drjoe
+ [R] add fix to finalizer that was missed earlier
+
+2012-12-11: wsfulton
+ [Python] Apply patch #3590522 - fully qualified package paths for Python 3 even if a module is in the
+ same package.
+
+2012-12-08: wsfulton
+ [Python] Bug #3563647 - PyInt_FromSize_t unavailable prior to Python 2.5 for unsigned int types.
+
+2012-12-08: wsfulton
+ [Perl] Fix bug #3571361 - C++ comment in C wrappers.
+
+2012-12-07: wsfulton
+ [C#] Apply patch #3571029 which adds missing director support for const unsigned long long &.
+
+2012-11-28: kwwette
+ [Octave] Simplified module loading: now just the syntax
+ $ example;
+ is accepted, which loads functions globally but constants and variables relative to the current scope.
+ This make module loading behaviour reliably consistent, and reduces problems when loading modules which
+ depend on other modules which may not have been previously loaded.
+
+2012-11-27: wsfulton
+ [cffi] Fix junk output when wrapping single character literal constants.
+
+2012-11-17: wsfulton
+ [Tcl, Modula3] Add missing support for -outdir.
+
+2012-11-17: wsfulton
+ Fix segfaults when using filename paths greater than 1024 characters in length.
+
+2012-11-14: wsfulton
+ [ccache-swig] Apply patch #3586392 from Frederik Deweerdt to fix some error cases - incorrectly using
+ memory after it has been deleted.
+
+2012-11-09: vzeitlin
+ [Python] Fix overflow when passing values greater than LONG_MAX from Python 3 for parameters with unsigned long C type.
+
+2012-11-09: wsfulton
+ Fix some feature matching issues for implicit destructors and implicit constructors and implicit
+ copy constructors added with %copyctor. Previously a feature for these had to be fully qualified
+ in order to match. Now the following will also match:
+
+ %feature("xyz") ~XXX();
+ struct XXX {};
+
+2012-11-09: wsfulton
+ Further consistency in named output typemap lookups for implicit constructors and destructors and
+ implicit copy constructors added with %copyctor. Previously only the fully qualified name was being
+ used, now the unqualified name will also be used. For example, previously:
+
+ example.i:38: Searching for a suitable 'out' typemap for: void Space::More::~More
+ Looking for: void Space::More::~More
+ Looking for: void
+
+ Now the unqualified name is also used:
+
+ example.i:38: Searching for a suitable 'out' typemap for: void Space::More::~More
+ Looking for: void Space::More::~More
+ Looking for: void ~More
+ Looking for: void
+
+2012-11-02: wsfulton
+ Fix some subtle named output typemap lookup misses, the fully qualified name was not always being
+ used for variables, for example:
+
+ struct Glob {
+ int MyVar;
+ };
+
+ Previously the search rules (as shown by -debug-tmsearch) for the getter wrapper were:
+
+ example.i:44: Searching for a suitable 'out' typemap for: int MyVar
+ Looking for: int MyVar
+ Looking for: int
+
+ Now the scope is named correctly:
+
+ example.i:44: Searching for a suitable 'out' typemap for: int Glob::MyVar
+ Looking for: int Glob::MyVar
+ Looking for: int MyVar
+ Looking for: int
+
+2012-10-26: wsfulton
+ Fix director typemap searching so that a typemap specified with a name will be correctly matched. Previously
+ the name was ignored during the typemap search. Applies to the following list of typemaps:
+ directorout, csdirectorout, cstype, imtype, ctype, ddirectorout, dtype, gotype, jtype, jni, javadirectorout.
+
+2012-10-11: wsfulton
+ Most of the special variables available for use in %exception are now also available for expansion in
+ %extend blocks. These are: $name $symname $overname $decl $fulldecl $parentname $parentsymname, see docs
+ on "Class extension" in SWIGPlus.html. Patch based on submission from Kris Thielemans.
+
+2012-10-10: wsfulton
+ Additional new special variables in %exception are expanded as follows:
+ $parentname - The parent class name (if any) for a method.
+ $parentsymname - The target language parent class name (if any) for a method.
+
+2012-10-08: iant
+ [Go] Generating Go code now requires using the -intgosize option to
+ indicate the size of the 'int' type in Go. This is because the
+ size of the type is changing from Go 1.0 to Go 1.1 for x86_64.
+
+2012-09-14: wsfulton
+ Add new warning if the empty template instantiation is used as a base class, for example:
+
+ template <typename T> class Base {};
+ %template() Base<int>;
+ class Derived : public Base<int> {};
+
+ gives the following warning instead of silently ignoring the base:
+
+ cpp_inherit.i:52: Warning 401: Base class 'Base< int >' has no name as it is an empty template instantiated with '%template()'. Ignored.
+ cpp_inherit.i:51: Warning 401: The %template directive must be written before 'Base< int >' is used as a base class and be declared with a name.
+
+
+2012-09-11: wsfulton
+ [Java] Fix #3535304 - Direct use of a weak global reference in directors
+ sometimes causing seg faults especially on Android.
+
+2012-09-06: wsfulton
+ [Java] Fix (char *STRING, size_t LENGTH) typemaps to accept NULL string.
+
+2012-08-26: drjoe
+ [R] make ExternalReference slot ref to contain reference
+
+2012-08-26: drjoe
+ [R] fix Examples/Makefile to use C in $(CC) rather than $(CXX)
+
Version 2.0.8 (20 August 2012)
==============================
diff --git a/CHANGES.current b/CHANGES.current
index c88bed34d..a043d3348 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -2,157 +2,9 @@ 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 2.0.9 (16 December 2012)
-================================
+Version 2.0.10 (in progress)
+============================
-2012-12-16: wsfulton
- Fix garbage line number / empty file name reporting for some missing
- '}' or ')' error messages.
+2013-01-03: wsfulton
+ Pull patch from BrantKyser to fix directors and nspace feature when multilevel namespaces are used.
-2012-12-15: kkaempf
- [Ruby] Apply patch 3530444, Class#methods and Class#constants returns array of
- symbols in Ruby 1.9+
-
-2012-12-14: kkaempf
- [Ruby] Apply patch 3530439 and finally replace all occurences of the STR2CSTR() macro
- with StringValuePtr(). STR2CSTR was deprecated since years and got removed in Ruby 1.9
-
-2012-12-14: kkaempf
- [Ruby] Applied patches #3530442 and 3530443 to adapt compile and runtime include
- paths to match Ruby 1.9+
-
-2012-12-14: wsfulton
- [CFFI] Fix #3161614 - Some string constants are incorrect
-
-2012-12-13: wsfulton
- [CFFI] Fix #3529690 - Fix incorrect constant names.
-
-2012-12-12: drjoe
- [R] add fix to finalizer that was missed earlier
-
-2012-12-11: wsfulton
- [Python] Apply patch #3590522 - fully qualified package paths for Python 3 even if a module is in the
- same package.
-
-2012-12-08: wsfulton
- [Python] Bug #3563647 - PyInt_FromSize_t unavailable prior to Python 2.5 for unsigned int types.
-
-2012-12-08: wsfulton
- [Perl] Fix bug #3571361 - C++ comment in C wrappers.
-
-2012-12-07: wsfulton
- [C#] Apply patch #3571029 which adds missing director support for const unsigned long long &.
-
-2012-11-28: kwwette
- [Octave] Simplified module loading: now just the syntax
- $ example;
- is accepted, which loads functions globally but constants and variables relative to the current scope.
- This make module loading behaviour reliably consistent, and reduces problems when loading modules which
- depend on other modules which may not have been previously loaded.
-
-2012-11-27: wsfulton
- [cffi] Fix junk output when wrapping single character literal constants.
-
-2012-11-17: wsfulton
- [Tcl, Modula3] Add missing support for -outdir.
-
-2012-11-17: wsfulton
- Fix segfaults when using filename paths greater than 1024 characters in length.
-
-2012-11-14: wsfulton
- [ccache-swig] Apply patch #3586392 from Frederik Deweerdt to fix some error cases - incorrectly using
- memory after it has been deleted.
-
-2012-11-09: vzeitlin
- [Python] Fix overflow when passing values greater than LONG_MAX from Python 3 for parameters with unsigned long C type.
-
-2012-11-09: wsfulton
- Fix some feature matching issues for implicit destructors and implicit constructors and implicit
- copy constructors added with %copyctor. Previously a feature for these had to be fully qualified
- in order to match. Now the following will also match:
-
- %feature("xyz") ~XXX();
- struct XXX {};
-
-2012-11-09: wsfulton
- Further consistency in named output typemap lookups for implicit constructors and destructors and
- implicit copy constructors added with %copyctor. Previously only the fully qualified name was being
- used, now the unqualified name will also be used. For example, previously:
-
- example.i:38: Searching for a suitable 'out' typemap for: void Space::More::~More
- Looking for: void Space::More::~More
- Looking for: void
-
- Now the unqualified name is also used:
-
- example.i:38: Searching for a suitable 'out' typemap for: void Space::More::~More
- Looking for: void Space::More::~More
- Looking for: void ~More
- Looking for: void
-
-2012-11-02: wsfulton
- Fix some subtle named output typemap lookup misses, the fully qualified name was not always being
- used for variables, for example:
-
- struct Glob {
- int MyVar;
- };
-
- Previously the search rules (as shown by -debug-tmsearch) for the getter wrapper were:
-
- example.i:44: Searching for a suitable 'out' typemap for: int MyVar
- Looking for: int MyVar
- Looking for: int
-
- Now the scope is named correctly:
-
- example.i:44: Searching for a suitable 'out' typemap for: int Glob::MyVar
- Looking for: int Glob::MyVar
- Looking for: int MyVar
- Looking for: int
-
-2012-10-26: wsfulton
- Fix director typemap searching so that a typemap specified with a name will be correctly matched. Previously
- the name was ignored during the typemap search. Applies to the following list of typemaps:
- directorout, csdirectorout, cstype, imtype, ctype, ddirectorout, dtype, gotype, jtype, jni, javadirectorout.
-
-2012-10-11: wsfulton
- Most of the special variables available for use in %exception are now also available for expansion in
- %extend blocks. These are: $name $symname $overname $decl $fulldecl $parentname $parentsymname, see docs
- on "Class extension" in SWIGPlus.html. Patch based on submission from Kris Thielemans.
-
-2012-10-10: wsfulton
- Additional new special variables in %exception are expanded as follows:
- $parentname - The parent class name (if any) for a method.
- $parentsymname - The target language parent class name (if any) for a method.
-
-2012-10-08: iant
- [Go] Generating Go code now requires using the -intgosize option to
- indicate the size of the 'int' type in Go. This is because the
- size of the type is changing from Go 1.0 to Go 1.1 for x86_64.
-
-2012-09-14: wsfulton
- Add new warning if the empty template instantiation is used as a base class, for example:
-
- template <typename T> class Base {};
- %template() Base<int>;
- class Derived : public Base<int> {};
-
- gives the following warning instead of silently ignoring the base:
-
- cpp_inherit.i:52: Warning 401: Base class 'Base< int >' has no name as it is an empty template instantiated with '%template()'. Ignored.
- cpp_inherit.i:51: Warning 401: The %template directive must be written before 'Base< int >' is used as a base class and be declared with a name.
-
-
-2012-09-11: wsfulton
- [Java] Fix #3535304 - Direct use of a weak global reference in directors
- sometimes causing seg faults especially on Android.
-
-2012-09-06: wsfulton
- [Java] Fix (char *STRING, size_t LENGTH) typemaps to accept NULL string.
-
-2012-08-26: drjoe
- [R] make ExternalReference slot ref to contain reference
-
-2012-08-26: drjoe
- [R] fix Examples/Makefile to use C in $(CC) rather than $(CXX)
diff --git a/Doc/Manual/Extending.html b/Doc/Manual/Extending.html
index c3b2740f4..ce205abf5 100644
--- a/Doc/Manual/Extending.html
+++ b/Doc/Manual/Extending.html
@@ -3536,7 +3536,7 @@ If you wish for a new language module to be distributed with SWIG,
which we encourage for all popular languages, there are a few requirements.
While we appreciate that getting all aspects of a new language working
won't happen at the outset, there are a set of minimum requirements before
-a module can be committed into the SVN repository for distribution with future
+a module can be committed into the official Github repository for distribution with future
versions of SWIG. The following are really a summary of this whole section with
details being outlined earlier on.
</p>
@@ -3578,7 +3578,7 @@ details being outlined earlier on.
</ol>
<p>
-Once accepted into SVN, development efforts should concentrate on
+Once accepted into the official Git repository, development efforts should concentrate on
getting the entire test-suite to work with plenty of runtime tests.
Runtime tests should be for existing testcases and new test cases
should be added should there be an area not already covered by
diff --git a/Doc/Manual/Preface.html b/Doc/Manual/Preface.html
index 2d0aa093e..58ab9dcb5 100644
--- a/Doc/Manual/Preface.html
+++ b/Doc/Manual/Preface.html
@@ -98,7 +98,7 @@ about this can be obtained at:
</p>
<div class="shell"><pre>
-<a href="http://www.swig.org/svn.html">http://www.swig.org/svn.html</a>
+<a href="http://www.swig.org/svn.html">SWIG Bleeding Edge</a>
</pre></div>
diff --git a/Doc/Manual/Sections.html b/Doc/Manual/Sections.html
index faff95298..9e4a3dd17 100644
--- a/Doc/Manual/Sections.html
+++ b/Doc/Manual/Sections.html
@@ -6,7 +6,7 @@
<body bgcolor="#ffffff">
<H1><a name="Sections"></a>SWIG-2.0 Documentation</H1>
-Last update : SWIG-2.0.9 (16 December 2012)
+Last update : SWIG-2.0.10 (in progress)
<H2>Sections</H2>
diff --git a/Doc/Manual/Windows.html b/Doc/Manual/Windows.html
index 6349f355a..c94a3da3b 100644
--- a/Doc/Manual/Windows.html
+++ b/Doc/Manual/Windows.html
@@ -236,8 +236,8 @@ The short abbreviated instructions follow...
</ul>
<p>
-The step by step instructions to download and install MinGW and MSYS, then download and build the latest version of SWIG from SVN follow...
-Note that the instructions for obtaining SWIG from SVN are also online at <a href="http://www.swig.org/svn.html">SWIG SVN</a>.
+The step by step instructions to download and install MinGW and MSYS, then download and build the latest version of SWIG from Github follow...
+Note that the instructions for obtaining SWIG from Github are also online at <a href="http://www.swig.org/svn.html">SWIG Bleeding Edge</a>.
</p>
<p>
@@ -300,15 +300,19 @@ tar -zxf bison-2.0-MSYS.tar.gz
</li>
<li>
- To get the latest SWIG SVN (version from Subversion source control), type in the following:
+ The very latest development version of SWIG is available from <a href="https://github.com/swig/swig">SWIG on Github</a>
+ and can be downloaded as a zip file or if you have Git installed, via Git.
+ Either download the latest <a href="https://github.com/swig/swig/archive/master.zip">Zip file</a> snapshot and unzip and rename the top level folder to /usr/src/swig.
+
+ Otherwise if using Git, type in the following:
<div class="shell"><pre>
mkdir /usr/src
cd /usr/src
-svn co https://swig.svn.sourceforge.net/svnroot/swig/trunk swig
+git clone https://github.com/swig/swig.git
</pre></div>
<b>Pitfall note:</b>
-If you want to check out SWIG to a different folder to the proposed
+If you want to place SWIG in a different folder to the proposed
/usr/src/swig, do not use MSYS emulated windows drive letters, because
the autotools will fail miserably on those.
</li>
diff --git a/Examples/test-suite/csharp/director_nspace_runme.cs b/Examples/test-suite/csharp/director_nspace_runme.cs
index 8126535eb..b1e2b47f5 100644
--- a/Examples/test-suite/csharp/director_nspace_runme.cs
+++ b/Examples/test-suite/csharp/director_nspace_runme.cs
@@ -8,7 +8,7 @@ public class bools_runme {
}
}
-class director_nspace_MyBarFoo : director_nspaceNamespace.Bar.Foo {
+class director_nspace_MyBarFoo : director_nspaceNamespace.TopLevel.Bar.Foo {
public override String ping() {
return "director_nspace_MyBarFoo.ping();";
@@ -18,15 +18,15 @@ class director_nspace_MyBarFoo : director_nspaceNamespace.Bar.Foo {
return "director_nspace_MyBarFoo.pong();" + ping();
}
- public override String fooBar(director_nspaceNamespace.Bar.FooBar fooBar) {
+ public override String fooBar(director_nspaceNamespace.TopLevel.Bar.FooBar fooBar) {
return fooBar.FooBarDo();
}
- public override director_nspaceNamespace.Bar.Foo makeFoo() {
- return new director_nspaceNamespace.Bar.Foo();
+ public override director_nspaceNamespace.TopLevel.Bar.Foo makeFoo() {
+ return new director_nspaceNamespace.TopLevel.Bar.Foo();
}
- public override director_nspaceNamespace.Bar.FooBar makeFooBar() {
- return new director_nspaceNamespace.Bar.FooBar();
+ public override director_nspaceNamespace.TopLevel.Bar.FooBar makeFooBar() {
+ return new director_nspaceNamespace.TopLevel.Bar.FooBar();
}
}
diff --git a/Examples/test-suite/director_nspace.i b/Examples/test-suite/director_nspace.i
index 6814a43a3..121a06f1f 100644
--- a/Examples/test-suite/director_nspace.i
+++ b/Examples/test-suite/director_nspace.i
@@ -8,28 +8,31 @@ SWIG_JAVABODY_TYPEWRAPPER(public, public, public, SWIGTYPE)
%{
#include <string>
-namespace Bar
+namespace TopLevel
{
- class FooBar {
- public:
- FooBar() {}
- FooBar(const FooBar&) {}
- virtual ~FooBar() {}
+ namespace Bar
+ {
+ class FooBar {
+ public:
+ FooBar() {}
+ FooBar(const FooBar&) {}
+ virtual ~FooBar() {}
+
+ std::string FooBarDo() { return "Bar::Foo2::Foo2Bar()"; }
+ };
- std::string FooBarDo() { return "Bar::Foo2::Foo2Bar()"; }
- };
+ class Foo {
+ public:
+ virtual ~Foo() {}
+ virtual std::string ping() { return "Bar::Foo::ping()"; }
+ virtual std::string pong() { return "Bar::Foo::pong();" + ping(); }
+ virtual std::string fooBar(FooBar* fb) { return fb->FooBarDo(); }
+ virtual Foo makeFoo() { return Foo(); }
+ virtual FooBar makeFooBar() { return FooBar(); }
- class Foo {
- public:
- virtual ~Foo() {}
- virtual std::string ping() { return "Bar::Foo::ping()"; }
- virtual std::string pong() { return "Bar::Foo::pong();" + ping(); }
- virtual std::string fooBar(FooBar* fb) { return fb->FooBarDo(); }
- virtual Foo makeFoo() { return Foo(); }
- virtual FooBar makeFooBar() { return FooBar(); }
-
- static Foo* get_self(Foo *self_) {return self_;}
- };
+ static Foo* get_self(Foo *self_) {return self_;}
+ };
+ }
}
%}
@@ -38,36 +41,39 @@ namespace Bar
// nspace feature only supported by these languages
#if defined(SWIGJAVA) || defined(SWIGCSHARP) || defined(SWIGD)
-%nspace Bar::Foo;
-%nspace Bar::FooBar;
+%nspace TopLevel::Bar::Foo;
+%nspace TopLevel::Bar::FooBar;
#else
#warning nspace feature not yet supported in this target language
#endif
-%feature("director") Bar::Foo;
+%feature("director") TopLevel::Bar::Foo;
-namespace Bar
-{
- class FooBar {
- public:
- FooBar();
- FooBar(const FooBar&);
- virtual ~FooBar();
-
- std::string FooBarDo();
+namespace TopLevel
+{
+ namespace Bar
+ {
+ class FooBar {
+ public:
+ FooBar();
+ FooBar(const FooBar&);
+ virtual ~FooBar();
+
+ std::string FooBarDo();
+
+ };
- };
-
- class Foo
- {
- public:
- virtual ~Foo();
- virtual std::string ping();
- virtual std::string pong();
- virtual std::string fooBar(FooBar* fb);
- virtual Foo makeFoo();
- virtual FooBar makeFooBar();
-
- static Foo* get_self(Foo *self_);
- };
+ class Foo
+ {
+ public:
+ virtual ~Foo();
+ virtual std::string ping();
+ virtual std::string pong();
+ virtual std::string fooBar(FooBar* fb);
+ virtual Foo makeFoo();
+ virtual FooBar makeFooBar();
+
+ static Foo* get_self(Foo *self_);
+ };
+ }
}
diff --git a/Examples/test-suite/java/director_nspace_runme.java b/Examples/test-suite/java/director_nspace_runme.java
index 4e56f91c2..53a6131a7 100644
--- a/Examples/test-suite/java/director_nspace_runme.java
+++ b/Examples/test-suite/java/director_nspace_runme.java
@@ -19,7 +19,7 @@ public class director_nspace_runme {
}
-class director_nspace_MyBarFoo extends director_nspacePackage.Bar.Foo {
+class director_nspace_MyBarFoo extends director_nspacePackage.TopLevel.Bar.Foo {
@Override
public String ping() {
@@ -32,17 +32,17 @@ class director_nspace_MyBarFoo extends director_nspacePackage.Bar.Foo {
}
@Override
- public String fooBar(director_nspacePackage.Bar.FooBar fooBar) {
+ public String fooBar(director_nspacePackage.TopLevel.Bar.FooBar fooBar) {
return fooBar.FooBarDo();
}
@Override
- public director_nspacePackage.Bar.Foo makeFoo() {
- return new director_nspacePackage.Bar.Foo();
+ public director_nspacePackage.TopLevel.Bar.Foo makeFoo() {
+ return new director_nspacePackage.TopLevel.Bar.Foo();
}
@Override
- public director_nspacePackage.Bar.FooBar makeFooBar() {
- return new director_nspacePackage.Bar.FooBar();
+ public director_nspacePackage.TopLevel.Bar.FooBar makeFooBar() {
+ return new director_nspacePackage.TopLevel.Bar.FooBar();
}
}
diff --git a/README b/README
index 68a55e862..305edf078 100644
--- a/README
+++ b/README
@@ -1,6 +1,6 @@
SWIG (Simplified Wrapper and Interface Generator)
-Version: 2.0.9 (16 December 2012)
+Version: 2.0.10 (in progress)
Tagline: SWIG is a compiler that integrates C and C++ with languages
including Perl, Python, Tcl, Ruby, PHP, Java, Ocaml, Lua,
diff --git a/Source/Modules/java.cxx b/Source/Modules/java.cxx
index c642387dc..45161b9d9 100644
--- a/Source/Modules/java.cxx
+++ b/Source/Modules/java.cxx
@@ -4256,8 +4256,13 @@ public:
Wrapper *w = NewWrapper();
if (Len(package_path) > 0)
- if (Len(getNSpace()) > 0)
+ if (Len(getNSpace()) > 0) {
internal_classname = NewStringf("%s/%s/%s", package_path, getNSpace(), classname);
+
+ // If the namespace is multiple levels, the result of getNSpace() will have inserted
+ // .'s to delimit namespaces, so we need to replace those with /'s
+ Replace(internal_classname, ".", "/", DOH_REPLACE_ANY);
+ }
else
internal_classname = NewStringf("%s/%s", package_path, classname);
else
diff --git a/configure.in b/configure.in
index 0ead9b606..3927a102a 100644
--- a/configure.in
+++ b/configure.in
@@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script.
dnl The macros which aren't shipped with the autotools are stored in the
dnl Tools/config directory in .m4 files.
-AC_INIT([swig],[2.0.9],[http://www.swig.org])
+AC_INIT([swig],[2.0.10],[http://www.swig.org])
dnl NB: When this requirement is increased to 2.60 or later, AC_PROG_SED
dnl definition below can be removed