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) { 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