--- old/src/share/vm/oops/methodDataOop.hpp Thu Feb 4 09:29:52 2010 +++ new/src/share/vm/oops/methodDataOop.hpp Thu Feb 4 09:29:52 2010 @@ -545,6 +545,10 @@ return cell_offset(counter_cell_count); } + void set_count(uint count) { + set_uint_at(count_off, count); + } + #ifndef PRODUCT void print_data_on(outputStream* st); #endif @@ -692,6 +696,10 @@ void clear_row(uint row) { assert(row < row_limit(), "oob"); + // Cleare total count - indicator of polimorphic call site. + // An additional receiver will be recorded in the cleaned row + // during next call execution. + set_count(0); set_receiver(row, NULL); set_receiver_count(row, 0); }