From: <wsf...@us...> - 2008-12-02 20:21:21
|
Revision: 10960 http://swig.svn.sourceforge.net/swig/?rev=10960&view=rev Author: wsfulton Date: 2008-12-02 20:21:16 +0000 (Tue, 02 Dec 2008) Log Message: ----------- Apply patch #2143727 for Python from Serge Monkewitz to fix importing base classes when the package option is specified in %module and that module is %import'ed Modified Paths: -------------- trunk/CHANGES.current trunk/Examples/test-suite/packageoption.h trunk/Examples/test-suite/packageoption.list trunk/Examples/test-suite/packageoption_a.i trunk/Examples/test-suite/packageoption_b.i trunk/Examples/test-suite/perl5/packageoption_runme.pl trunk/Source/Modules/python.cxx Added Paths: ----------- trunk/Examples/test-suite/packageoption_c.i Modified: trunk/CHANGES.current =================================================================== --- trunk/CHANGES.current 2008-11-28 23:37:13 UTC (rev 10959) +++ trunk/CHANGES.current 2008-12-02 20:21:16 UTC (rev 10960) @@ -1,10 +1,14 @@ Version 1.3.37 (in progress) ============================ +2008-12-02: wsfulton + [Python] Apply patch #2143727 from Serge Monkewitz to fix importing base classes + when the package option is specified in %module and that module is %import'ed. + 2008-11-28: wsfulton - [UTL] Fix some incorrect acceptance of types in the STL, eg a double * element passed - into a vector<int *> constructor would be accepted, but the ensuing behaviour was - undefined. Now the type conversion correctly raises an exception. + [UTL] Fix #2080497. Some incorrect acceptance of types in the STL, eg a double * element + passed into a vector<int *> constructor would be accepted, but the ensuing behaviour + was undefined. Now the type conversion correctly raises an exception. 2008-11-24: wsfulton Add -outcurrentdir option. This sets the default output directory to the current Modified: trunk/Examples/test-suite/packageoption.h =================================================================== --- trunk/Examples/test-suite/packageoption.h 2008-11-28 23:37:13 UTC (rev 10959) +++ trunk/Examples/test-suite/packageoption.h 2008-12-02 20:21:16 UTC (rev 10960) @@ -1,5 +1,6 @@ -class A -{ - public: - int testInt() { return 2;} +struct Base { + virtual int vmethod() { return 1; } + int basemethod() { return 1; } + virtual ~Base() {} }; + Modified: trunk/Examples/test-suite/packageoption.list =================================================================== --- trunk/Examples/test-suite/packageoption.list 2008-11-28 23:37:13 UTC (rev 10959) +++ trunk/Examples/test-suite/packageoption.list 2008-12-02 20:21:16 UTC (rev 10960) @@ -1,2 +1,3 @@ packageoption_a packageoption_b +packageoption_c Modified: trunk/Examples/test-suite/packageoption_a.i =================================================================== --- trunk/Examples/test-suite/packageoption_a.i 2008-11-28 23:37:13 UTC (rev 10959) +++ trunk/Examples/test-suite/packageoption_a.i 2008-12-02 20:21:16 UTC (rev 10960) @@ -1,4 +1,4 @@ -%module(package="C") "packageoption_a"; +%module(package="CommonPackage") "packageoption_a"; %inline %{ class A @@ -6,5 +6,11 @@ public: int testInt() { return 2;} }; +%} +%{ +#include "packageoption.h" %} + +%include "packageoption.h" + Modified: trunk/Examples/test-suite/packageoption_b.i =================================================================== --- trunk/Examples/test-suite/packageoption_b.i 2008-11-28 23:37:13 UTC (rev 10959) +++ trunk/Examples/test-suite/packageoption_b.i 2008-12-02 20:21:16 UTC (rev 10960) @@ -1,4 +1,4 @@ -%module(package="C") "packageoption_b"; +%module(package="CommonPackage") "packageoption_b"; %inline %{ class B Added: trunk/Examples/test-suite/packageoption_c.i =================================================================== --- trunk/Examples/test-suite/packageoption_c.i (rev 0) +++ trunk/Examples/test-suite/packageoption_c.i 2008-12-02 20:21:16 UTC (rev 10960) @@ -0,0 +1,13 @@ +%module(package="PackageC") "packageoption_c"; + +%import "packageoption_a.i" + +%inline %{ +#include "packageoption.h" + +struct Derived : Base { + virtual int vmethod() { return 2; } + virtual ~Derived() {} +}; + +%} Modified: trunk/Examples/test-suite/perl5/packageoption_runme.pl =================================================================== --- trunk/Examples/test-suite/perl5/packageoption_runme.pl 2008-11-28 23:37:13 UTC (rev 10959) +++ trunk/Examples/test-suite/perl5/packageoption_runme.pl 2008-12-02 20:21:16 UTC (rev 10960) @@ -14,11 +14,11 @@ ok($test, $name); } -my $a = C::A->new(); +my $a = CommonPackage::A->new(); -isa_ok($a, 'C::A'); +isa_ok($a, 'CommonPackage::A'); -my $b = C::B->new(); +my $b = CommonPackage::B->new(); -isa_ok($b, 'C::B'); +isa_ok($b, 'CommonPackage::B'); Modified: trunk/Source/Modules/python.cxx =================================================================== --- trunk/Source/Modules/python.cxx 2008-11-28 23:37:13 UTC (rev 10959) +++ trunk/Source/Modules/python.cxx 2008-12-02 20:21:16 UTC (rev 10960) @@ -925,7 +925,11 @@ if (!options || (!Getattr(options, "noshadow") && !Getattr(options, "noproxy"))) { Printf(import, "_%s\n", modname); if (!Strstr(f_shadow_imports, import)) { - Printf(f_shadow, "import %s\n", modname); + if (pkg && (!package || Strcmp(pkg, package) != 0)) { + Printf(f_shadow, "import %s.%s\n", pkg, modname); + } else { + Printf(f_shadow, "import %s\n", modname); + } Printv(f_shadow_imports, import, NULL); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |