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