From f3cd3bfe2192ce8322d0d5781ab3ec4e72c1dc9f Mon Sep 17 00:00:00 2001 From: Marcelo Matus Date: Fri, 6 Jan 2006 16:55:58 +0000 Subject: [PATCH] flag the memberget/memberset methods and use it to deactivate kwargs, reported by amaury git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8257 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Examples/test-suite/python/kwargs.i | 3 ++- Source/Modules/lang.cxx | 2 ++ Source/Modules/python.cxx | 4 +++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Examples/test-suite/python/kwargs.i b/Examples/test-suite/python/kwargs.i index 3e281a5c8..21f6ea8b1 100644 --- a/Examples/test-suite/python/kwargs.i +++ b/Examples/test-suite/python/kwargs.i @@ -2,9 +2,10 @@ %kwargs; +%rename(myDel) del; %inline { - struct s { int a; }; + struct s { int del; }; } diff --git a/Source/Modules/lang.cxx b/Source/Modules/lang.cxx index 2f71727c1..2c4bc4fa3 100644 --- a/Source/Modules/lang.cxx +++ b/Source/Modules/lang.cxx @@ -1270,6 +1270,7 @@ Language::membervariableHandler(Node *n) { } Swig_MembersetToFunction(n,ClassType, flags); + Setattr(n,"memberset", "1"); if (!Extend) { /* Check for a member in typemap here */ @@ -1320,6 +1321,7 @@ Language::membervariableHandler(Node *n) { Swig_MembergetToFunction(n,ClassType, flags); Setattr(n,"sym:name", mrename_get); + Setattr(n,"memberget", "1"); functionWrapper(n); } Delete(mrename_get); diff --git a/Source/Modules/python.cxx b/Source/Modules/python.cxx index 33e9ef303..7f6582978 100644 --- a/Source/Modules/python.cxx +++ b/Source/Modules/python.cxx @@ -1269,7 +1269,9 @@ public: * ------------------------------------------------------------ */ int check_kwargs(Node *n) { - return (use_kw || GetFlag(n,"feature:kwargs")); + return (use_kw || GetFlag(n,"feature:kwargs")) + && !GetFlag(n,"memberset") && !GetFlag(n,"memberget") + && !checkAttribute(n,"nodeType","destructor"); }