comparison src/share/vm/oops/method.hpp @ 17812:a7d4d4655766

Merge
author kvn
date Wed, 26 Mar 2014 18:21:05 -0700
parents 3205e78d8193
children 8a9bb7821e28 9428a0b94204
comparison
equal deleted inserted replaced
17789:6b207d038106 17812:a7d4d4655766
348 MethodData* method_data() const { 348 MethodData* method_data() const {
349 return _method_data; 349 return _method_data;
350 } 350 }
351 351
352 void set_method_data(MethodData* data) { 352 void set_method_data(MethodData* data) {
353 _method_data = data; 353 // The store into method must be released. On platforms without
354 // total store order (TSO) the reference may become visible before
355 // the initialization of data otherwise.
356 OrderAccess::release_store_ptr((volatile void *)&_method_data, data);
354 } 357 }
355 358
356 MethodCounters* method_counters() const { 359 MethodCounters* method_counters() const {
357 return _method_counters; 360 return _method_counters;
358 } 361 }
359 362
360
361 void set_method_counters(MethodCounters* counters) { 363 void set_method_counters(MethodCounters* counters) {
362 _method_counters = counters; 364 // The store into method must be released. On platforms without
365 // total store order (TSO) the reference may become visible before
366 // the initialization of data otherwise.
367 OrderAccess::release_store_ptr((volatile void *)&_method_counters, counters);
363 } 368 }
364 369
365 #ifdef TIERED 370 #ifdef TIERED
366 // We are reusing interpreter_invocation_count as a holder for the previous event count! 371 // We are reusing interpreter_invocation_count as a holder for the previous event count!
367 // We can do that since interpreter_invocation_count is not used in tiered. 372 // We can do that since interpreter_invocation_count is not used in tiered.