VM: simpler code for find_object_containing_card

char-rename
Björn Lindqvist 2016-10-08 07:11:47 +02:00
parent 8cacf7bf8d
commit ae9818db87
1 changed files with 6 additions and 8 deletions

View File

@ -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) {
if (card_index == 0)
return start;
else {
card_index--;
card_index--;
while (object_start_offsets[card_index] == card_starts_inside_object) {
// First card should start with an object
FACTOR_ASSERT(card_index > 0);
card_index--;
}
return start + card_index * card_size + object_start_offsets[card_index];
while (object_start_offsets[card_index] == card_starts_inside_object) {
// First card should start with an object
FACTOR_ASSERT(card_index > 0);
card_index--;
}
return start + card_index * card_size + object_start_offsets[card_index];
}
// we need to remember the first object allocated in the card