diff options
author | Vladimir Kalinin <vkalinin@opendesign.com> | 2016-05-18 18:07:04 +0300 |
---|---|---|
committer | Vladimir Kalinin <vkalinin@opendesign.com> | 2016-05-18 18:07:04 +0300 |
commit | 0145a07cc3673e224d2811fea88f934370bd87fb (patch) | |
tree | e2caa277f032c1109a57a751b566c97fde848b96 | |
parent | ef4d7628a93ebd8189deacd5e8a1ed1bfb5814b2 (diff) | |
download | swig-0145a07cc3673e224d2811fea88f934370bd87fb.tar.gz |
fix for nested ignored types
-rw-r--r-- | Source/Modules/csharp.cxx | 8 | ||||
-rw-r--r-- | Source/Modules/java.cxx | 12 |
2 files changed, 14 insertions, 6 deletions
diff --git a/Source/Modules/csharp.cxx b/Source/Modules/csharp.cxx index 12a502586..01fd5435b 100644 --- a/Source/Modules/csharp.cxx +++ b/Source/Modules/csharp.cxx @@ -188,8 +188,12 @@ public: String *symname = Copy(Getattr(n, "sym:name")); if (symname && !GetFlag(n, "feature:flatnested")) { for (Node *outer_class = Getattr(n, "nested:outer"); outer_class; outer_class = Getattr(outer_class, "nested:outer")) { - Push(symname, "."); - Push(symname, Getattr(outer_class, "sym:name")); + if (String* name = Getattr(outer_class, "sym:name")) { + Push(symname, "."); + Push(symname, name); + } + else + return NULL; } } if (nspace) { diff --git a/Source/Modules/java.cxx b/Source/Modules/java.cxx index b7a5ebbfe..eb809ff59 100644 --- a/Source/Modules/java.cxx +++ b/Source/Modules/java.cxx @@ -210,10 +210,14 @@ public: String *nspace = Getattr(n, "sym:nspace"); String *symname = Copy(Getattr(n, "sym:name")); if (symname && !GetFlag(n, "feature:flatnested")) { - for (Node *outer_class = Getattr(n, "nested:outer"); outer_class; outer_class = Getattr(outer_class, "nested:outer")) { - Push(symname, jnidescriptor ? "$" : "."); - Push(symname, Getattr(outer_class, "sym:name")); - } + for (Node *outer_class = Getattr(n, "nested:outer"); outer_class; outer_class = Getattr(outer_class, "nested:outer")) { + if (String* name = Getattr(outer_class, "sym:name")) { + Push(symname, jnidescriptor ? "$" : "."); + Push(symname, name); + } + else + return NULL; + } } if (nspace) { if (package && !jnidescriptor) |