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) {
|
if (!name) {
|
||||||
name = NewString("");
|
name = NewString("");
|
||||||
}
|
}
|
||||||
SwigType_remember(type);
|
|
||||||
p = SwigType_str(type, name);
|
p = SwigType_str(type, name);
|
||||||
Append(result,p);
|
Append(result,p);
|
||||||
String* value = Getattr(parm, "value");
|
String* value = Getattr(parm, "value");
|
||||||
|
|
|
||||||
|
|
@ -1454,7 +1454,24 @@ int Language::memberconstantHandler(Node *n) {
|
||||||
* Language::typedefHandler()
|
* 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;
|
return SWIG_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2240,6 +2257,7 @@ int Language::accessDeclaration(Node *n) {
|
||||||
|
|
||||||
int Language::namespaceDeclaration(Node *n) {
|
int Language::namespaceDeclaration(Node *n) {
|
||||||
if (Getattr(n,"alias")) return SWIG_OK;
|
if (Getattr(n,"alias")) return SWIG_OK;
|
||||||
|
if (Getattr(n,"unnamed")) return SWIG_OK;
|
||||||
emit_children(n);
|
emit_children(n);
|
||||||
return SWIG_OK;
|
return SWIG_OK;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue