VM: simpler code for find_object_containing_card
parent
8cacf7bf8d
commit
ae9818db87
|
@ -15,16 +15,14 @@ object_start_map::~object_start_map() { delete[] object_start_offsets; }
|
||||||
cell object_start_map::find_object_containing_card(cell card_index) {
|
cell object_start_map::find_object_containing_card(cell card_index) {
|
||||||
if (card_index == 0)
|
if (card_index == 0)
|
||||||
return start;
|
return start;
|
||||||
else {
|
card_index--;
|
||||||
card_index--;
|
|
||||||
|
|
||||||
while (object_start_offsets[card_index] == card_starts_inside_object) {
|
while (object_start_offsets[card_index] == card_starts_inside_object) {
|
||||||
// First card should start with an object
|
// First card should start with an object
|
||||||
FACTOR_ASSERT(card_index > 0);
|
FACTOR_ASSERT(card_index > 0);
|
||||||
card_index--;
|
card_index--;
|
||||||
}
|
|
||||||
return start + card_index * card_size + object_start_offsets[card_index];
|
|
||||||
}
|
}
|
||||||
|
return start + card_index * card_size + object_start_offsets[card_index];
|
||||||
}
|
}
|
||||||
|
|
||||||
// we need to remember the first object allocated in the card
|
// we need to remember the first object allocated in the card
|
||||||
|
|
Loading…
Reference in New Issue