/** * Returns whether the instruction at the given offset is part of a * subroutine. */ public boolean isSubroutine(int instructionOffset) { return branchTargetFinder.isSubroutine(instructionOffset); }
if (isSubroutine(index))
if (isSubroutine(offset)) (isSubroutineStart(index) ? 'S' : '-') + (isSubroutineReturning(index) ? 'r' : '-') + (isSubroutine(index) ? " ["+subroutineStart(index)+" -> "+subroutineEnd(index)+"]" : "") + InstructionFactory.create(codeAttribute.code, index).toString(index));
if (isSubroutine(offset)) (isSubroutineStart(index) ? 'S' : '-') + (isSubroutineReturning(index) ? 'r' : '-') + (isSubroutine(index) ? " ["+subroutineStart(index)+" -> "+subroutineEnd(index)+"]" : "") + InstructionFactory.create(codeAttribute.code, index).toString(index));
/** * Returns whether the instruction at the given offset is part of a * subroutine. */ public boolean isSubroutine(int instructionOffset) { return branchTargetFinder.isSubroutine(instructionOffset); }
if (isSubroutine(offset)) (isSubroutineStart(index) ? 'S' : '-') + (isSubroutineReturning(index) ? 'r' : '-') + (isSubroutine(index) ? " ["+subroutineStart(index)+" -> "+subroutineEnd(index)+"]" : "") + InstructionFactory.create(codeAttribute.code, index).toString(index));
/** * Returns whether the instruction at the given offset is part of a * subroutine. */ public boolean isSubroutine(int instructionOffset) { return branchTargetFinder.isSubroutine(instructionOffset); }
if (branchTargetFinder.isSubroutine(offset) && branchTargetFinder.isSubroutineReturning(offset))
/** * Returns whether the instruction at the given offset is part of a * subroutine. */ public boolean isSubroutine(int instructionOffset) { return branchTargetFinder.isSubroutine(instructionOffset); }
if (branchTargetFinder.isSubroutine(offset) && branchTargetFinder.isSubroutineReturning(offset))
/** * Marks the branch target at the given offset. */ private void markBranchTarget(int offset, int jumpOffset) { int targetOffset = offset + jumpOffset; instructionMarks[targetOffset] |= BRANCH_TARGET; // Are we inside a previously marked subroutine? if (isSubroutine(offset)) { // Mark the subroutine start of the target. subroutineStarts[targetOffset] = currentSubroutineStart; // Update the current subroutine end. if (currentSubroutineEnd < targetOffset) { currentSubroutineEnd = targetOffset; } } }
if (branchTargetFinder.isSubroutine(offset) && branchTargetFinder.isSubroutineReturning(offset))
/** * Checks if the specified instruction is inside a subroutine. */ private void checkSubroutine(int offset) { // Are we inside a previously marked subroutine? if (isSubroutine(offset)) { // Update the current subroutine start. currentSubroutineStart = subroutineStarts[offset]; } else { // Mark the subroutine start (or NONE). subroutineStarts[offset] = currentSubroutineStart; } } }
if (branchTargetFinder.isSubroutine(offset) && branchTargetFinder.isSubroutineReturning(offset))