William S Fulton
b65ba2a8db
Minor code improvements
2013-11-29 07:33:55 +00:00
William S Fulton
44a883a057
Cosmetics/code beautification of nested class support
2013-11-29 07:29:58 +00:00
Vladimir Kalinin
b63c4839fe
Nested classes support
...
Closes #89
Squash merge branch 'master' of https://github.com/wkalinin/swig into wkalinin-nested
By Vladimir Kalinin
* 'master' of https://github.com/wkalinin/swig :
CPlusPlusOut mode for Octave
nested class illustration
fixed "Abstract" flag for nested classes added an example enabled anonymous nested structs runtime test
porting
warnings disabled
porting fixes
java runtime tests ported
nested class closing bracket offset fixed
removed double nested template (not supported by %template parsing)
template_nested test extended
parent field made public
property access fixed
replaced tabs with spaces
warning W-reorder
deprecated warnings removed, derived_nested runtime test added
optimized string indenting
Nested classes indenting
nested classes docs
fixed the order in which flattened inner classes are added after the outer
Private nested classes were getting into the type table.
Java getProxyName() fix for nested classes fixes the case when nested classes is forward declared
Fix for a case when a nested class inherits from the same base as the outer. (Base class constructor declaration is found first in this case)
merge fix
nested C struct first immediate declaration incorrectly renamed sample fixed
tests updated to reflect nested classes support
Java nested classes support (1)
flattening should remove the link to the outer class
access mode correctly set/restored for nested classes
nested templates should be skipped while flattening (template nodes themselves, not expanded versions) also non-public nested classes should be ignored
If nested classes are not supported, default behaviour is flattening, not ignoring flag "nested" is preserved, so, the nested classes can be ignored by user
nested workaround test updated
template instantiated within a class is marked as nested for ignoring purposes
%ignore not applied to the nested classed, because "nested" flag is set too late
typedef name takes precedence over the real name (reason?)
unnamed structs should be processed for all the languages
nested C struct instances are wrapped as "immutable"
tree building
typedef declaration for unnamed C structures fixed
nested classes "flattening"
fixed %ignoring nested classes
renamed "nested" attribute to "nested:outer" added "nested" flag, to be used with $ignore (it is not removed while flattening) added nestedClassesSupported() function to the Language interface
renamed "nested" attribute to "nested:outer" added "nested" flag, to be used with $ignore (it is not removed while flattening) added nestedClassesSupported() function to the Language interface
tree iteration fix
dirclassname variable names unified memory issue fixed
merge error
ignore unnamed structs for C++
unnamed nested C structs naming & unnesting
class added to classes hash under typedef name
private nested classes skipped
test updated due to nested templates support
anonymous structs with inheritance fixed nested_class test to allow anonymous structs w/o declarator
tests updated: nested workaround removed from namespace_class.i propagated nested template declaration to the C++ file
injected members scope
nested tempplates fixes, nested structures in "C" mode parsing added utility function "appendSibling" (like "appendChild")
nested unnamed structures parsing fixes, access mode restored on nested class end, tdname is properly patched with outer class name prefix
memory management fixes
nested templates (1)
Nested unnamed structs
Nested class support (1)
Nested class support (1)
2013-11-29 07:02:34 +00:00
William S Fulton
bcb7aee022
Merge branch 'master' into gsoc2009-matevz
...
Conflicts:
Examples/Makefile.in
Examples/guile/Makefile.in
Lib/php/php.swg
Makefile.in
Source/CParse/parser.y
configure.ac
2013-10-10 07:26:09 +01:00
William S Fulton
3fcbb40af9
Remove incorrectly and newly introduced assert
...
Was failing in li_boost_shared_ptr.i for some languages. A similar
testcase has been added into naturalvar_more.i.
2013-10-05 02:16:02 +01:00
William S Fulton
e186d2176a
Fix %naturalvar and templated methods using enums
...
%naturalvar was not being picked up - use the symbol table instead for
looking up the feature.
use_naturalvar_mode() has been moved to Language class (not strictly necessary though)
2013-10-04 23:08:33 +01:00
Olly Betts
12708c9241
Fix typos
2013-09-25 17:29:33 +12:00
William S Fulton
9d0b20916f
Add ability to suppress some director warnings by their method name, not just the containing class name
2013-03-19 19:50:43 +00:00
William S Fulton
d1b40b468b
Fix C code where a typedef name was used for constructor and destructor names in %extend. Deprecate use of typedef names for constructor and destructor names going forwards.
2013-02-18 22:40:42 +00:00
William S Fulton
e44656cfe5
Add support for extern "C" thread_local
2013-02-08 18:45:29 +00:00
William S Fulton
7fcfdeee08
Fixes detecting if a variable is extern when using 'extern thread_local'
2013-02-08 07:38:10 +00:00
William S Fulton
b725625e6f
Add support for thread_local when specified with other legitimate storage class specifiers - extern and static
2013-02-08 06:36:39 +00:00
William S Fulton
6399428a62
Add lambda functions to the symbol tables and add ability to suppress lambda warnings.
2013-02-04 20:05:34 +00:00
William S Fulton
38f37ef5ae
Apply patch SF #335 - Truly ignore constructors in directors with %ignore and correct testcase that tests this
2013-01-29 06:55:22 +00:00
William S Fulton
7841a0d097
Remove cvs/svn Id strings
2013-01-12 01:21:16 +00:00
Brant K. Kyser
6cb5b5487f
Use NSPACE_SEPARATOR rather than liter string for package seperator.
2013-01-08 21:28:13 -06:00
Brant K. Kyser
3c12306b21
Remove extra underscore from generated director names to maintain prevent breaking languages that do not support nspace.
2013-01-05 03:40:06 -06:00
Brant K. Kyser
747b50e2d7
Clean up fix for SourceForge Bug #1299 .
2013-01-03 23:10:28 -06:00
Brant K. Kyser
f6ce5f089f
Qualify generated SwigDirector class names with namespaces
2013-01-03 21:26:08 -06:00
William S Fulton
f38147c154
Remove some pointless code creating implicit constructors
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13948 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-12-02 18:11:56 +00:00
William S Fulton
9b40eb58e3
cosmetic variable name changes for abstracts to match previous commit
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13936 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-24 14:15:20 +00:00
William S Fulton
d93dc0f8e2
Distinguish between an "abstract" attribute on a class containing a list of abstract members and an "abstract" flag on pure virtual methods - renamed former to "abstracts"
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13935 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-24 14:13:58 +00:00
William S Fulton
0d2c459046
Remove some unused code and pointless variable assignments
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13932 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-23 07:38:00 +00:00
William S Fulton
f3e253771c
Remove incorrect Delete
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13931 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-23 07:36:10 +00:00
William S Fulton
14446c365b
Minor logic and memory leak fix.
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13930 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-22 23:23:15 +00:00
William S Fulton
afec99c64f
Remove some useless code
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13929 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-22 23:22:34 +00:00
William S Fulton
dad2476091
Minor logic fix.
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13928 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-22 23:21:54 +00:00
William S Fulton
be3236cb67
Better handling of null sym:name
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13927 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-22 23:21:19 +00:00
William S Fulton
61b4c1cbcd
Fix 'name' attribute for explicitly defined constructors and destructors if the associated class was in a namespace, eg a correct fully qualified name might be Space::Klass::~Klass, but it was Space::~Klass, now it is simply ~Klass (names are now consistent with implicitly added constructors/destructors).
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13884 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-13 22:21:51 +00:00
William S Fulton
aeebd394f3
Fix incorrect implicit constructor and destructor names in the symbol tables. Fix some feature matching issues for implicit destructors and implicit constructors and impliciti copy constructors added with %copyctor. Also improves consistency in named typemap lookup rules.
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13882 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-13 22:19:47 +00:00
William S Fulton
421139a5fe
Fix some subtle named output typemap lookup misses, the fully qualified name was not always being in all cases such as member variables
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13878 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-13 22:16:28 +00:00
William S Fulton
f6229d4b73
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. Implemented by ensuring the 'type' attribute in the Node is set up correctly and using the usual Swig_typemap_lookup on the Node.
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13873 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-10-27 17:37:34 +00:00
William S Fulton
77d9ad5354
Fix multiply defined symbol in target language scope
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13869 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-10-11 19:22:13 +00:00
William S Fulton
bc43673a86
Add new warning if an empty template declaration is used on a base class, minor docs improvement for empty template declarations.
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13840 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-14 22:25:35 +00:00
William S Fulton
b6f6fcd6d8
Memory corruption fixes highlighted by DOH_MEMORY_DEBUG_POOL in Python
...
director tests.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13554 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-08-07 21:58:52 +00:00
William S Fulton
7ec1e11604
Fix bug 3529601 - seg fault when a protected method has the director
...
feature but the parent class does not. Also fix similar problems with
the allprotected feature.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13135 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-05-29 22:02:43 +00:00
William S Fulton
55bda8f9f2
Fix seg fault attempting to warn about illegal destructors - introduced in rev 13111
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13128 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-05-28 06:20:45 +00:00
William S Fulton
706736a73d
Fix some warning messages to correctly show class names.
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13111 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-05-23 20:24:21 +00:00
William S Fulton
73b0431fbc
Fix C enum forward declarations in some target languages (notably Java)
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13030 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-05-01 18:44:22 +00:00
William S Fulton
24133bacd7
Remove numerous hard coded 'result' variable name in generated c/c++ wrappers. The variable name is now defined in just one place, making it possible to change the name easily if a target language so wishes - see cwrap.c.
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12830 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-10-30 21:51:50 +00:00
William S Fulton
4c6f66577a
Add warnings for badly named destructors. Fix %extend and destructors for templates - they weren't always being wrapped. Fix destructor "name" attribute.
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12804 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-09-13 06:15:29 +00:00
William S Fulton
a141af9574
Fix regression introduced in r12784 where SWIG accepts a non standard constructor and destructor name in %extend, where the typedef name is used as the constructor/destructor name.
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12801 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-09-08 18:19:45 +00:00
William S Fulton
30206f975c
Fix constructors in named typedef class declarations
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12784 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-08-25 19:27:38 +00:00
William S Fulton
f24d1b99b1
Add in missing wrappers for friend functions for some target languages
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12588 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-01 23:06:40 +00:00
William S Fulton
4a73d986dd
Any 'using' statements in the protected section of a class were previously ignored with dirprot mode, certainly with Java and C#. Also directors - a call to a method being defined in the base class, not overridden in a subcalss, but again overridden in a class derived from the first subclass was not being dispatched correcly to the most derived class - affecting non-scripting languages. Fix for C# is based on recent fix for D.
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12419 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-02-01 07:02:50 +00:00
William S Fulton
1adc50e730
constify SwigType * in many places
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12349 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-12-15 21:55:08 +00:00
William S Fulton
3219746776
Apply patch #3066958 from Mikael Johansson to fix default smart pointer handling when the smart pointer contains both a const and non-const operator->.
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12240 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-10-03 13:12:00 +00:00
William S Fulton
d1e6643161
Expand the family of debug print functions for displaying DOH types. Provide gdb support for calling these. Document improved debugging experience.
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12221 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-09-15 20:17:11 +00:00
William S Fulton
cca92f4188
Fix #3024875 - shared_ptr of classes with non-public destructors. This also fixes the 'unref' feature when used on classes with non-public destructors.
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12155 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-07-07 18:19:01 +00:00
William S Fulton
95a3eb5a7d
code style: fix inconsistent NULL pointer comparisons
...
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12137 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-06-17 23:49:12 +00:00