Skip to content

Commit 6501d54

Browse files
committed
Fix bug that occurs when module name and inherited class name are same.
1 parent dfb348e commit 6501d54

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

modules/java/generator/gen_java.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -862,10 +862,13 @@ def initCodeStreams(self, Module):
862862
self.j_code = StringIO()
863863
self.jn_code = StringIO()
864864
self.cpp_code = StringIO();
865-
if self.name != Module:
866-
self.j_code.write(T_JAVA_START_INHERITED if self.base else T_JAVA_START_ORPHAN)
865+
if self.base:
866+
self.j_code.write(T_JAVA_START_INHERITED)
867867
else:
868-
self.j_code.write(T_JAVA_START_MODULE)
868+
if self.name != Module:
869+
self.j_code.write(T_JAVA_START_ORPHAN)
870+
else:
871+
self.j_code.write(T_JAVA_START_MODULE)
869872
# misc handling
870873
if self.name == 'Core':
871874
self.imports.add("java.lang.String")
@@ -962,11 +965,11 @@ def add_class(self, decl):
962965
logging.info('ignored: %s', classinfo)
963966
return
964967
name = classinfo.name
965-
if self.isWrapped(name):
968+
if self.isWrapped(name) and not classinfo.base:
966969
logging.warning('duplicated: %s', classinfo)
967970
return
968971
self.classes[name] = classinfo
969-
if name in type_dict:
972+
if name in type_dict and not classinfo.base:
970973
logging.warning('duplicated: %s', classinfo)
971974
return
972975
type_dict[name] = \
@@ -1520,7 +1523,7 @@ def gen_class(self, ci):
15201523
ci.jn_code.write( ManualFuncs[ci.name][func]["jn_code"] )
15211524
ci.cpp_code.write( ManualFuncs[ci.name][func]["cpp_code"] )
15221525

1523-
if ci.name != self.Module:
1526+
if ci.name != self.Module or ci.base:
15241527
# finalize()
15251528
ci.j_code.write(
15261529
"""

0 commit comments

Comments
 (0)