View | Details | Raw Unified | Return to bug 70997 | Differences between
and this patch

Collapse All | Expand All

(-)TryStatement.java (-3 / +6 lines)
Lines 343-359 Link Here
343
					case FINALLY_MUST_BE_INLINED :
343
					case FINALLY_MUST_BE_INLINED :
344
						codeStream.store(anyExceptionVariable, false);
344
						codeStream.store(anyExceptionVariable, false);
345
						this.finallyBlock.generateCode(currentScope, codeStream);
345
						this.finallyBlock.generateCode(currentScope, codeStream);
346
						position = codeStream.position;
346
						codeStream.load(anyExceptionVariable);
347
						codeStream.load(anyExceptionVariable);
347
						codeStream.athrow();
348
						codeStream.athrow();
349
						codeStream.recordPositionsFrom(
350
								position,
351
								finallyBlock.sourceEnd);
348
						subRoutineStartLabel.place();
352
						subRoutineStartLabel.place();
349
						codeStream.recordPositionsFrom(finallySequenceStartPC, finallyBlock.sourceStart);
350
						break;
353
						break;
351
						
354
						
352
					case FINALLY_DOES_NOT_COMPLETE :
355
					case FINALLY_DOES_NOT_COMPLETE :
353
						codeStream.pop();
356
						codeStream.pop();
354
						subRoutineStartLabel.place();
357
						subRoutineStartLabel.place();
355
						codeStream.recordPositionsFrom(finallySequenceStartPC, finallyBlock.sourceStart);
358
						codeStream.recordPositionsFrom(finallySequenceStartPC, finallyBlock.sourceStart);
356
						finallyBlock.generateCode(scope, codeStream);
359
						this.finallyBlock.generateCode(scope, codeStream);
357
						break;
360
						break;
358
				}
361
				}
359
				// will naturally fall into subsequent code after subroutine invocation
362
				// will naturally fall into subsequent code after subroutine invocation
Lines 379-385 Link Here
379
								codeStream.removeNotDefinitelyAssignedVariables(currentScope, preTryInitStateIndex);
382
								codeStream.removeNotDefinitelyAssignedVariables(currentScope, preTryInitStateIndex);
380
							}
383
							}
381
							// entire sequence for finally is associated to finally block
384
							// entire sequence for finally is associated to finally block
382
							finallyBlock.generateCode(scope, codeStream);
385
							this.finallyBlock.generateCode(scope, codeStream);
383
							break;
386
							break;
384
						
387
						
385
						case FINALLY_DOES_NOT_COMPLETE :
388
						case FINALLY_DOES_NOT_COMPLETE :

Return to bug 70997