move fix for typedef (no ptr/no ref) + director from directors.cxx to lang.cxx. This should fix more related problems around. Also fix for unnamed namespace in lang.cxx
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6639 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
4226a4b753
commit
709cc0bd34
2 changed files with 19 additions and 2 deletions
|
|
@ -214,7 +214,6 @@ String *Swig_method_decl(SwigType *s, const String_or_char *id, List *args, int
|
|||
if (!name) {
|
||||
name = NewString("");
|
||||
}
|
||||
SwigType_remember(type);
|
||||
p = SwigType_str(type, name);
|
||||
Append(result,p);
|
||||
String* value = Getattr(parm, "value");
|
||||
|
|
|
|||
|
|
@ -1454,7 +1454,24 @@ int Language::memberconstantHandler(Node *n) {
|
|||
* Language::typedefHandler()
|
||||
* ---------------------------------------------------------------------- */
|
||||
|
||||
int Language::typedefHandler(Node *) {
|
||||
int Language::typedefHandler(Node *n) {
|
||||
/* since this is a recurring issue, we are going to remember the
|
||||
typedef pointer, if already it is not a pointer or reference, as
|
||||
in
|
||||
|
||||
typedef void NT;
|
||||
int func(NT *p);
|
||||
|
||||
see director_basic.i for example.
|
||||
*/
|
||||
SwigType *name = Getattr(n,"name");
|
||||
SwigType *decl = Getattr(n,"decl");
|
||||
if (!SwigType_ispointer(decl) && !SwigType_isreference(decl)) {
|
||||
SwigType *pname = Copy(name);
|
||||
SwigType_add_pointer(pname);
|
||||
SwigType_remember(pname);
|
||||
Delete(pname);
|
||||
}
|
||||
return SWIG_OK;
|
||||
}
|
||||
|
||||
|
|
@ -2240,6 +2257,7 @@ int Language::accessDeclaration(Node *n) {
|
|||
|
||||
int Language::namespaceDeclaration(Node *n) {
|
||||
if (Getattr(n,"alias")) return SWIG_OK;
|
||||
if (Getattr(n,"unnamed")) return SWIG_OK;
|
||||
emit_children(n);
|
||||
return SWIG_OK;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue