< prev index next >

src/hotspot/share/interpreter/oopMapCache.cpp

Print this page

        

*** 194,203 **** --- 194,204 ---- void InterpreterOopMap::initialize() { _method = NULL; _mask_size = USHRT_MAX; // This value should cause a failure quickly _bci = 0; _expression_stack_size = 0; + _num_oops = 0; for (int i = 0; i < N; i++) _bit_mask[i] = 0; } void InterpreterOopMap::iterate_oop(OffsetClosure* oop_closure) const { int n = number_of_entries();
*** 348,357 **** --- 349,359 ---- // compute bits int word_index = 0; uintptr_t value = 0; uintptr_t mask = 1; + _num_oops = 0; CellTypeState* cell = vars; for (int entry_index = 0; entry_index < n_entries; entry_index++, mask <<= bits_per_entry, cell++) { // store last word if (mask == 0) { bit_mask()[word_index++] = value;
*** 365,374 **** --- 367,377 ---- } // set oop bit if ( cell->is_reference()) { value |= (mask << oop_bit_number ); + _num_oops++; } // set dead bit if (!cell->is_live()) { value |= (mask << dead_bit_number);
*** 397,406 **** --- 400,410 ---- set_method(from->method()); set_bci(from->bci()); set_mask_size(from->mask_size()); set_expression_stack_size(from->expression_stack_size()); + _num_oops = from->num_oops(); // Is the bit mask contained in the entry? if (from->mask_size() <= small_mask_limit) { memcpy((void *)_bit_mask, (void *)from->_bit_mask, mask_word_size() * BytesPerWord);
< prev index next >