mirror of
https://github.com/corda/corda.git
synced 2025-02-02 17:21:06 +00:00
reorder code in MemorySite::release so we can use low->size before it is overwritten
This commit is contained in:
parent
5a76277b84
commit
04bc58fd95
@ -874,7 +874,7 @@ deadBuddy(Context* c, Value* v, Read* r)
|
|||||||
assert(c, r);
|
assert(c, r);
|
||||||
|
|
||||||
if (DebugBuddies) {
|
if (DebugBuddies) {
|
||||||
fprintf(stderr, "dead buddy %p from", v);
|
fprintf(stderr, "remove dead buddy %p from", v);
|
||||||
for (Value* p = v->buddy; p != v; p = p->buddy) {
|
for (Value* p = v->buddy; p != v; p = p->buddy) {
|
||||||
fprintf(stderr, " %p", p);
|
fprintf(stderr, " %p", p);
|
||||||
}
|
}
|
||||||
@ -1615,10 +1615,10 @@ class MemorySite: public Site {
|
|||||||
FrameResource* low = c->frameResources
|
FrameResource* low = c->frameResources
|
||||||
+ offsetToFrameIndex(c, value.offset);
|
+ offsetToFrameIndex(c, value.offset);
|
||||||
|
|
||||||
::release(c, low);
|
|
||||||
if (low->size > BytesPerWord) {
|
if (low->size > BytesPerWord) {
|
||||||
::release(c, low + 1);
|
::release(c, low + 1);
|
||||||
}
|
}
|
||||||
|
::release(c, low);
|
||||||
}
|
}
|
||||||
|
|
||||||
decrement(c, base);
|
decrement(c, base);
|
||||||
@ -1836,7 +1836,7 @@ acquire(Context* c, Resource* r, unsigned newSize, Value* newValue,
|
|||||||
if (not r->reserved) {
|
if (not r->reserved) {
|
||||||
if (DebugResources) {
|
if (DebugResources) {
|
||||||
char buffer[256]; r->toString(c, buffer, 256);
|
char buffer[256]; r->toString(c, buffer, 256);
|
||||||
fprintf(stderr, "%p acquire %s\n", newValue, buffer);
|
fprintf(stderr, "%p acquire %s size %d\n", newValue, buffer, newSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (r->value) {
|
if (r->value) {
|
||||||
@ -1856,7 +1856,7 @@ release(Context* c, Resource* r)
|
|||||||
if (not r->reserved) {
|
if (not r->reserved) {
|
||||||
if (DebugResources) {
|
if (DebugResources) {
|
||||||
char buffer[256]; r->toString(c, buffer, 256);
|
char buffer[256]; r->toString(c, buffer, 256);
|
||||||
fprintf(stderr, "%p release %s\n", r->value, buffer);
|
fprintf(stderr, "%p release %s size %d\n", r->value, buffer, r->size);
|
||||||
}
|
}
|
||||||
|
|
||||||
assert(c, r->value);
|
assert(c, r->value);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user