private void generateCodeSnippet(Reference reference, CodeStream codeStream, BranchLabel postCloseLabel, boolean record, int i, int invokeCloseStartPc) { reference.generateCode(this.scope, codeStream, true); codeStream.ifnull(postCloseLabel); reference.generateCode(this.scope, codeStream, true); codeStream.invokeAutoCloseableClose(reference.resolvedType); if (!record) return; codeStream.recordPositionsFrom(invokeCloseStartPc, this.tryBlock.sourceEnd); isDuplicateResourceReference(i); } private void generateCodeSnippet(LocalDeclaration localDeclaration, CodeStream codeStream, BranchLabel postCloseLabel, boolean record, int i, int invokeCloseStartPc) {
private void generateCodeSnippet(Reference reference, CodeStream codeStream, BranchLabel postCloseLabel, boolean record, int i, int invokeCloseStartPc) { reference.generateCode(this.scope, codeStream, true); codeStream.ifnull(postCloseLabel); reference.generateCode(this.scope, codeStream, true); codeStream.invokeAutoCloseableClose(reference.resolvedType); if (!record) return; codeStream.recordPositionsFrom(invokeCloseStartPc, this.tryBlock.sourceEnd); isDuplicateResourceReference(i); } private void generateCodeSnippet(LocalDeclaration localDeclaration, CodeStream codeStream, BranchLabel postCloseLabel, boolean record, int i, int invokeCloseStartPc) {
private void generateCodeSnippet(LocalDeclaration localDeclaration, CodeStream codeStream, BranchLabel postCloseLabel, boolean record, int i, int invokeCloseStartPc) { LocalVariableBinding variableBinding = localDeclaration.binding; codeStream.load(variableBinding); codeStream.ifnull(postCloseLabel); codeStream.load(variableBinding); codeStream.invokeAutoCloseableClose(variableBinding.type); if (!record) return; codeStream.recordPositionsFrom(invokeCloseStartPc, this.tryBlock.sourceEnd); if (!isDuplicateResourceReference(i)) // do not remove duplicate variable now codeStream.removeVariable(variableBinding); }
private void generateCodeSnippet(LocalDeclaration localDeclaration, CodeStream codeStream, BranchLabel postCloseLabel, boolean record, int i, int invokeCloseStartPc) { LocalVariableBinding variableBinding = localDeclaration.binding; codeStream.load(variableBinding); codeStream.ifnull(postCloseLabel); codeStream.load(variableBinding); codeStream.invokeAutoCloseableClose(variableBinding.type); if (!record) return; codeStream.recordPositionsFrom(invokeCloseStartPc, this.tryBlock.sourceEnd); if (!isDuplicateResourceReference(i)) // do not remove duplicate variable now codeStream.removeVariable(variableBinding); }