Merge commit '6c2d91819a4f431fe18d8d966ead14dac10fad16'

This commit is contained in:
Benjamin Vedder 2022-04-14 15:45:54 +02:00
commit c6750e8b5e
1 changed files with 25 additions and 3 deletions

View File

@ -324,18 +324,40 @@ int lbm_memory_shrink(lbm_uint *ptr, unsigned int n) {
if (status(ix+i) == END && i < n) {
return 0; // cannot shrink allocation to a larger size
}
switch(status(ix+i)) {
case START:
break;
case END:
break;
case START_END:
break;
case FREE_OR_USED:
break;
default:
break;
}
if (i == (n-1)) {
if (status(ix+i) == END ||
status(ix+i) == START_END) done = true;
if (i == 0) set_status(ix+i, START_END);
else set_status(ix+i, END);
status(ix+i) == START_END) {
done = true;
}
if (i == 0) {
set_status(ix+i, START_END);
}
else {
set_status(ix+i, END);
}
break;
}
}
if (!done) {
i++; // move to next position, prev position should be END or START_END
for (;i < ((bitmap_size << BITMAP_SIZE_SHIFT) - ix); i ++)
if (status(ix+i) == END) {
set_status(ix+i, FREE_OR_USED);
break;
}
}
return 1;