Skip to content

Commit

Permalink
Showing 7 changed files with 67 additions and 90 deletions.
Original file line number Diff line number Diff line change
@@ -73,6 +73,19 @@ public Object executeDispatch(
Object methodName,
DynamicObject blockObject,
Object[] argumentsObjects) {
try {
trueUnmodifiedAssumption.check();
falseUnmodifiedAssumption.check();
} catch (InvalidAssumptionException e) {
return resetAndDispatch(
frame,
receiverObject,
methodName,
blockObject,
argumentsObjects,
"class modified");
}

if (!guard(methodName, receiverObject)) {
return next.executeDispatch(
frame,
@@ -85,18 +98,6 @@ public Object executeDispatch(
if ((boolean) receiverObject) {
trueProfile.enter();

try {
trueUnmodifiedAssumption.check();
} catch (InvalidAssumptionException e) {
return resetAndDispatch(
frame,
receiverObject,
methodName,
blockObject,
argumentsObjects,
"class modified");
}

switch (getDispatchAction()) {
case CALL_METHOD:
return call(trueCallDirect, frame, trueMethod, receiverObject, blockObject, argumentsObjects);
@@ -109,18 +110,6 @@ public Object executeDispatch(
} else {
falseProfile.enter();

try {
falseUnmodifiedAssumption.check();
} catch (InvalidAssumptionException e) {
return resetAndDispatch(
frame,
receiverObject,
methodName,
blockObject,
argumentsObjects,
"class modified");
}

switch (getDispatchAction()) {
case CALL_METHOD:
return call(falseCallDirect, frame, falseMethod, receiverObject, blockObject, argumentsObjects);
Original file line number Diff line number Diff line change
@@ -62,17 +62,6 @@ public Object executeDispatch(
Object methodName,
DynamicObject blockObject,
Object[] argumentsObjects) {
if (!guard(methodName, receiverObject)) {
return next.executeDispatch(
frame,
receiverObject,
methodName,
blockObject,
argumentsObjects);
}

// Check the class has not been modified

try {
validShape.check();
unmodifiedAssumption.check();
@@ -86,6 +75,15 @@ public Object executeDispatch(
"class modified");
}

if (!guard(methodName, receiverObject)) {
return next.executeDispatch(
frame,
receiverObject,
methodName,
blockObject,
argumentsObjects);
}

switch (getDispatchAction()) {
case CALL_METHOD:
return call(callNode, frame, method, receiverObject, blockObject, argumentsObjects);
Original file line number Diff line number Diff line change
@@ -53,17 +53,6 @@ public Object executeDispatch(
Object methodName,
DynamicObject blockObject,
Object[] argumentsObjects) {
if (!guard(methodName, receiverObject)) {
return next.executeDispatch(
frame,
receiverObject,
methodName,
blockObject,
argumentsObjects);
}

// Check the class has not been modified

try {
unmodifiedAssumption.check();
} catch (InvalidAssumptionException e) {
@@ -76,6 +65,15 @@ public Object executeDispatch(
"class modified");
}

if (!guard(methodName, receiverObject)) {
return next.executeDispatch(
frame,
receiverObject,
methodName,
blockObject,
argumentsObjects);
}

switch (getDispatchAction()) {
case CALL_METHOD:
return call(callNode, frame, method, receiverObject, blockObject, argumentsObjects);
Original file line number Diff line number Diff line change
@@ -78,17 +78,6 @@ public Object executeDispatch(
Object methodName,
DynamicObject blockObject,
Object[] argumentsObjects) {
if (!guard(methodName, receiverObject)) {
return next.executeDispatch(
frame,
receiverObject,
methodName,
blockObject,
argumentsObjects);
}

// Check the class has not been modified

try {
unmodifiedAssumption.check();
} catch (InvalidAssumptionException e) {
@@ -101,6 +90,15 @@ public Object executeDispatch(
"class modified");
}

if (!guard(methodName, receiverObject)) {
return next.executeDispatch(
frame,
receiverObject,
methodName,
blockObject,
argumentsObjects);
}

switch (getDispatchAction()) {
case CALL_METHOD:
// When calling #method_missing we need to prepend the symbol
Original file line number Diff line number Diff line change
@@ -52,17 +52,6 @@ public Object executeDispatch(
Object methodName,
DynamicObject blockObject,
Object[] argumentsObjects) {
if (!guard(methodName, receiverObject)) {
return next.executeDispatch(
frame,
receiverObject,
methodName,
blockObject,
argumentsObjects);
}

// Check the class has not been modified

try {
unmodifiedAssumption.check();
} catch (InvalidAssumptionException e) {
@@ -75,6 +64,15 @@ public Object executeDispatch(
"class modified");
}

if (!guard(methodName, receiverObject)) {
return next.executeDispatch(
frame,
receiverObject,
methodName,
blockObject,
argumentsObjects);
}

switch (getDispatchAction()) {
case CALL_METHOD:
return MISSING;
Original file line number Diff line number Diff line change
@@ -62,17 +62,6 @@ public Object executeDispatch(
Object methodName,
DynamicObject blockObject,
Object[] argumentsObjects) {
if (!guard(methodName, receiverObject)) {
return next.executeDispatch(
frame,
receiverObject,
methodName,
blockObject,
argumentsObjects);
}

// Check the class has not been modified

try {
unmodifiedAssumption.check();
} catch (InvalidAssumptionException e) {
@@ -85,6 +74,15 @@ public Object executeDispatch(
"class modified");
}

if (!guard(methodName, receiverObject)) {
return next.executeDispatch(
frame,
receiverObject,
methodName,
blockObject,
argumentsObjects);
}

switch (getDispatchAction()) {
case CALL_METHOD:
return call(callNode, frame, method, expectedReceiver, blockObject, argumentsObjects);
Original file line number Diff line number Diff line change
@@ -57,17 +57,6 @@ public Object executeDispatch(
Object methodName,
DynamicObject blockObject,
Object[] argumentsObjects) {
if (!guard(methodName, receiverObject)) {
return next.executeDispatch(
frame,
receiverObject,
methodName,
blockObject,
argumentsObjects);
}

// Check the class has not been modified

try {
unmodifiedAssumption.check();
} catch (InvalidAssumptionException e) {
@@ -80,6 +69,15 @@ public Object executeDispatch(
"class modified");
}

if (!guard(methodName, receiverObject)) {
return next.executeDispatch(
frame,
receiverObject,
methodName,
blockObject,
argumentsObjects);
}

switch (getDispatchAction()) {
case CALL_METHOD:
return call(callNode, frame, method, receiverObject, blockObject, argumentsObjects);

0 comments on commit b95ac47

Please sign in to comment.