mirror of
https://github.com/corda/corda.git
synced 2025-02-02 17:21:06 +00:00
only set Context::forfeitedSite if value is live
This commit is contained in:
parent
39358e6652
commit
8819d01522
@ -2859,7 +2859,9 @@ class CombineEvent: public Event {
|
|||||||
maybePreserve(c, stackBefore, localsBefore, secondSize, second,
|
maybePreserve(c, stackBefore, localsBefore, secondSize, second,
|
||||||
second->source);
|
second->source);
|
||||||
target = second->source;
|
target = second->source;
|
||||||
|
if (liveNext(c, second)) {
|
||||||
c->forfeitedSite = target;
|
c->forfeitedSite = target;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
target = resultRead->allocateSite(c);
|
target = resultRead->allocateSite(c);
|
||||||
addSite(c, stackBefore, localsBefore, resultSize, result, target);
|
addSite(c, stackBefore, localsBefore, resultSize, result, target);
|
||||||
@ -2874,7 +2876,7 @@ class CombineEvent: public Event {
|
|||||||
|
|
||||||
if (c->arch->condensedAddressing()) {
|
if (c->arch->condensedAddressing()) {
|
||||||
c->forfeitedSite = 0;
|
c->forfeitedSite = 0;
|
||||||
removeSite(c, second, second->source);
|
removeSite(c, second, target);
|
||||||
if (live(result)) {
|
if (live(result)) {
|
||||||
addSite(c, 0, 0, resultSize, result, target);
|
addSite(c, 0, 0, resultSize, result, target);
|
||||||
}
|
}
|
||||||
@ -3100,7 +3102,9 @@ class TranslateEvent: public Event {
|
|||||||
if (c->arch->condensedAddressing()) {
|
if (c->arch->condensedAddressing()) {
|
||||||
maybePreserve(c, stackBefore, localsBefore, size, value, value->source);
|
maybePreserve(c, stackBefore, localsBefore, size, value, value->source);
|
||||||
target = value->source;
|
target = value->source;
|
||||||
|
if (liveNext(c, value)) {
|
||||||
c->forfeitedSite = target;
|
c->forfeitedSite = target;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
target = resultRead->allocateSite(c);
|
target = resultRead->allocateSite(c);
|
||||||
addSite(c, stackBefore, localsBefore, size, result, target);
|
addSite(c, stackBefore, localsBefore, size, result, target);
|
||||||
@ -3112,7 +3116,7 @@ class TranslateEvent: public Event {
|
|||||||
|
|
||||||
if (c->arch->condensedAddressing()) {
|
if (c->arch->condensedAddressing()) {
|
||||||
c->forfeitedSite = 0;
|
c->forfeitedSite = 0;
|
||||||
removeSite(c, value, value->source);
|
removeSite(c, value, target);
|
||||||
if (live(result)) {
|
if (live(result)) {
|
||||||
addSite(c, 0, 0, size, result, target);
|
addSite(c, 0, 0, size, result, target);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user