Commit Graph

28 Commits

Author SHA1 Message Date
William S Fulton 3be670e8db Fix assertion handling upcasting when using %shared_ptr on some templates.
A different approach is taken for supporting casting smart pointers up the
inheritance hierarchy. We no longer try to replace the underlying pointer type,
provided in the 'feature:smartptr', with the base class type. Such as morphing
'std::shared_ptr<(Derived)>' into 'std::shared_ptr<(Base)>'. Instead, we simply
use 'feature:smartptr' from the base class. This is more reliable than trying to
pattern match the pointer type in the feature. The base class must of course
also have the 'feature:smartptr' set, and this is still checked for as before.
The feature is now parsed in one place and stored in the parse tree in the
new 'smart' attribute for handling by the target languages.

Fix also improves the handling of the type parsed in 'feature:smartptr' in that
the type is now normalized and resolved in the scope of the class it is attached
to.

Closes #2768
2024-01-30 22:24:42 +00:00
William S Fulton b87c9fb4d7 Fix duplicate sym:overname values using %copyctor
Correct unintended commenting out of code.

Issue #2541
2023-07-29 08:16:50 +01:00
William S Fulton 5e1a37c6c5 Fix duplicate sym:overname values using %copyctor
The sym:overname attribute was not being updated when templates were
included in the list of overloaded methods/constructors, leading to
duplicate target language symbols in some language like java/csharp.

Closes #2541
2023-07-29 00:28:28 +01:00
William S Fulton 2acdfd77e9 SwigType * handling corrections
Further corrections to pass SwigType * to methods expecting types
instead of passing readable type strings.

Required reworking code that adds a fake inheritance for smart pointers
using the smartptr feature. Swig_smartptr_upcast() added as a support
function for this.
2022-11-09 22:11:27 +00:00
Olly Betts 631b41ae7b Use https for swig.org links 2022-10-06 13:16:39 +13:00
William S Fulton 6939d91e4c Header file tidyup
Fix Visual C++ warning in scilab.cxx:
  warning C4996: 'strtok': This function or variable may be unsafe.
2022-05-07 11:56:06 +01:00
Olly Betts 90f9117e10 Fix various comment and documentation typos 2017-08-13 18:04:33 +12:00
William S Fulton 7841a0d097 Remove cvs/svn Id strings 2013-01-12 01:21:16 +00:00
William S Fulton 0b0b568515 Cosmetic - comments added
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12654 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-05 06:09:55 +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 cb64f65bae SWIG license change - Source moves to GPLv3
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11876 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-02-27 23:53:33 +00:00
William S Fulton b0ecf14e31 Fix wrapping of overloaded protected methods when using allprotected mode
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10423 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-05-07 20:59:00 +00:00
William S Fulton 9976dc9d75 Add allprotected mode for wrapping protected members when using directors
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10381 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-04-20 20:41:01 +00:00
William S Fulton 575efcdd53 Fix using statements for overloaded methods
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10176 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-11-30 22:34:50 +00:00
William S Fulton fe042d2ebc Replace cvs $Header$ with svn $Id$
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10003 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-10-17 21:42:11 +00:00
William S Fulton aa04c4c057 beautify/format source code with gnu indent
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9505 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-11-01 23:54:54 +00:00
William S Fulton b7057f7ae8 fix parentnode for %extend methods
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9442 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-10-12 19:47:24 +00:00
William S Fulton 6326f4d5c6 redundant attribute check removed
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9141 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-06-02 21:03:26 +00:00
William S Fulton 7f74b8e7a3 Common template for head of each file detailing licence, distribution and authors information
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8972 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-03-06 22:51:01 +00:00
Marcelo Matus 60fca08fd8 fix previous overload +protected member issue, as reported by Colin McDonald
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8855 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-02-21 11:09:05 +00:00
Marcelo Matus 0e217ce9fb fix overload + protected member issue reported by Colin McDonald
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8851 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-02-20 16:52:28 +00:00
Marcelo Matus badf735534 fix friend bug #1323114
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7670 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-10-17 13:28:59 +00:00
William S Fulton 50543e36d1 Modify following features to work as flags, so that they can be truely set and unset: director, nodirector
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7592 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-10-04 21:47:33 +00:00
William S Fulton 4ec01af9dd Modify following features to work as flags, so that they can be truely set and unset:
java:const
            java:downcast
            compactdefaultargs
            ignore
            valuewrapper


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7562 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-09-30 21:37:40 +00:00
Marcelo Matus 6d8ba96466 fix protected constructor by using clean_overloaded to utils.cxx
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6801 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-12-01 00:47:10 +00:00
Marcelo Matus 553698d489 fix dirprot mode
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5874 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-04-11 12:20:04 +00:00
Marcelo Matus c41374becc %rename(x) Foo::y();
%inline %{
class Foo {
protected:
    void x();
public:
    void y();
};

%}

will work in plain or plain director mode, but it will complain the
same as before with director protected support.

The reason is that the parser emmits the warning, and at that stage it
is not possible to decide if the protected Foo::x() could or not
conflict with the renamed Foo::y(), since Foo::x() could be virtual,
even when no "virtual" attribute is used.



Core:
 parser.y: Detect the dirprot mode and prevents the generation of
           protected symbols at the parsing stage.
 lang.cxx: Export the director_protected_mode for parser.y and the
           director protected member detection is much cleaner.
 main.cxx: Fix the -dirprot flag, it was working in SWIG_FEATURE but
           not in the command line.(minor thing not relate to the error).
 swigmod.h: added Lang::dirprot_mode() for cleaner detection.
 utils.cxx: is_member_director() centralizes and improve the test.

Test suite:
 protected_rename.i: added %inline, so it can compile now.
 director_protected.i: more cases, checking using %rename.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5530 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-10 23:10:31 +00:00
Dave Beazley 9e98fd1252 Fixed bus error. Removed inline functions. Minor cleanup.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5500 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-08 15:24:39 +00:00