Skip to content

Commit 34ea0c5

Browse files
author
emmanue1
committed
Fix error in instance field initialization
1 parent 424d9b1 commit 34ea0c5

File tree

1 file changed

+7
-12
lines changed

1 file changed

+7
-12
lines changed

src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/visitor/InitInstanceFieldVisitor.java

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -94,20 +94,15 @@ public void visit(ConstructorDeclaration declaration) {
9494
if (datas.size() == 1) {
9595
int firstLineNumber = superConstructorCall.getLineNumber();
9696

97-
if (superConstructorCall.getDescriptor().equals("()V") && (firstLineNumber != UNKNOWN_LINE_NUMBER)) {
97+
if (superConstructorCall.getDescriptor().equals("()V") && (firstLineNumber != UNKNOWN_LINE_NUMBER) && iterator.hasNext()) {
9898
if ((lineNumber == UNKNOWN_LINE_NUMBER) || (lineNumber >= firstLineNumber)) {
99-
ListIterator<Statement> li = statements.listIterator(iterator.nextIndex());
100-
101-
while (li.hasNext()) {
102-
searchFirstLineNumberVisitor.init();
103-
li.next().accept(searchFirstLineNumberVisitor);
104-
int ln = searchFirstLineNumberVisitor.getLineNumber();
105-
if ((ln != UNKNOWN_LINE_NUMBER) && (ln < firstLineNumber)) {
106-
break;
107-
}
108-
}
99+
searchFirstLineNumberVisitor.init();
100+
iterator.next().accept(searchFirstLineNumberVisitor);
101+
iterator.previous();
102+
103+
int ln = searchFirstLineNumberVisitor.getLineNumber();
109104

110-
if (!li.hasNext()) {
105+
if ((ln != UNKNOWN_LINE_NUMBER) && (ln >= firstLineNumber)) {
111106
firstLineNumber = UNKNOWN_LINE_NUMBER;
112107
}
113108
}

0 commit comments

Comments
 (0)