1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

Bug fix. nonsensical case in cbsfindlargest when size is passed as zero.

Added RangeCopy.

Copied from Perforce
 Change: 184496
 ServerID: perforce.ravenbrook.com
This commit is contained in:
Richard Brooksby 2014-02-24 23:02:42 +00:00
parent 7db856f7b8
commit 5f9e072412
3 changed files with 17 additions and 3 deletions

View file

@ -764,7 +764,7 @@ static void cbsFindDeleteRange(Range rangeReturn, Range oldRangeReturn,
need to allocate a new block. */
AVER(res == ResOK);
} else
mps_lib_memcpy(oldRangeReturn, rangeReturn, sizeof(RangeStruct));
RangeCopy(oldRangeReturn, rangeReturn);
}
@ -873,8 +873,13 @@ Bool CBSFindLargest(Range rangeReturn, Range oldRangeReturn,
AVER(CBSBlockSize(block) >= maxSize);
RangeInit(&range, CBSBlockBase(block), CBSBlockLimit(block));
AVER(RangeSize(&range) >= maxSize);
cbsFindDeleteRange(rangeReturn, oldRangeReturn, cbs, &range,
size, findDelete);
if (size > 0)
cbsFindDeleteRange(rangeReturn, oldRangeReturn, cbs, &range,
size, findDelete);
else {
RangeCopy(rangeReturn, &range); /* FIXME: sense? */
RangeCopy(oldRangeReturn, &range);
}
}
}