comparison src/share/vm/oops/method.hpp @ 14460:8a9bb7821e28

Merge
author kvn
date Wed, 19 Feb 2014 12:08:49 -0800
parents 63a4eb8bcd23 3205e78d8193
children d8041d695d19 8504393de66b
comparison
equal deleted inserted replaced
14360:e8ef156f0bc9 14460:8a9bb7821e28
346 MethodData* method_data() const { 346 MethodData* method_data() const {
347 return _method_data; 347 return _method_data;
348 } 348 }
349 349
350 void set_method_data(MethodData* data) { 350 void set_method_data(MethodData* data) {
351 _method_data = data; 351 // The store into method must be released. On platforms without
352 // total store order (TSO) the reference may become visible before
353 // the initialization of data otherwise.
354 OrderAccess::release_store_ptr((volatile void *)&_method_data, data);
352 } 355 }
353 356
354 MethodCounters* method_counters() const { 357 MethodCounters* method_counters() const {
355 return _method_counters; 358 return _method_counters;
356 } 359 }
357 360
358
359 void set_method_counters(MethodCounters* counters) { 361 void set_method_counters(MethodCounters* counters) {
360 _method_counters = counters; 362 // The store into method must be released. On platforms without
363 // total store order (TSO) the reference may become visible before
364 // the initialization of data otherwise.
365 OrderAccess::release_store_ptr((volatile void *)&_method_counters, counters);
361 } 366 }
362 367
363 #ifdef TIERED 368 #ifdef TIERED
364 // We are reusing interpreter_invocation_count as a holder for the previous event count! 369 // We are reusing interpreter_invocation_count as a holder for the previous event count!
365 // We can do that since interpreter_invocation_count is not used in tiered. 370 // We can do that since interpreter_invocation_count is not used in tiered.