src/java.base/share/classes/java/lang/invoke/LambdaFormBuffer.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/java.base/share/classes/java/lang/invoke/LambdaFormBuffer.java	Tue Sep  9 17:35:30 2014
--- new/src/java.base/share/classes/java/lang/invoke/LambdaFormBuffer.java	Tue Sep  9 17:35:30 2014

*** 57,67 **** --- 57,67 ---- if (result == LAST_RESULT) result = length - 1; if (result >= 0 && names[result].type != V_TYPE) resultName = names[result]; } ! private LambdaForm lambdaForm() { assert(!inTrans()); // need endEdit call to tidy things up return new LambdaForm(debugName, arity, nameArray(), resultIndex()); } Name name(int i) {
*** 274,284 **** --- 274,284 ---- assert(name == null || lastIndexOf(name) >= 0); resultName = name; } /** Finish a transaction. */ ! void endEdit() { ! LambdaForm endEdit() { assert(verifyFirstChange()); // Assuming names have been changed pairwise from originalNames[i] to names[i], // update arguments to ensure referential integrity. for (int i = Math.max(firstChange, arity); i < length; i++) { Name name = names[i];
*** 314,323 **** --- 314,324 ---- System.arraycopy(exprs, 0, names, argp, exprp); // adjust arity arity -= exprp; } assert(verifyArity()); + return lambdaForm(); } private Name[] copyNamesInto(Name[] buffer) { System.arraycopy(names, 0, buffer, 0, length); Arrays.fill(buffer, length, buffer.length, null);

src/java.base/share/classes/java/lang/invoke/LambdaFormBuffer.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File