From 0145a07cc3673e224d2811fea88f934370bd87fb Mon Sep 17 00:00:00 2001 From: Vladimir Kalinin Date: Wed, 18 May 2016 18:07:04 +0300 Subject: [PATCH] fix for nested ignored types --- Source/Modules/csharp.cxx | 8 ++++++-- 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)