< prev index next >
src/hotspot/share/oops/method.hpp
Print this page
@@ -1,7 +1,7 @@
/*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
@@ -134,13 +134,13 @@
ConstMethod* constMethod() const { return _constMethod; }
void set_constMethod(ConstMethod* xconst) { _constMethod = xconst; }
static address make_adapters(const methodHandle& mh, TRAPS);
- address from_compiled_entry() const { return OrderAccess::load_acquire(&_from_compiled_entry); }
+ address from_compiled_entry() const;
address from_compiled_entry_no_trampoline() const;
- address from_interpreted_entry() const{ return OrderAccess::load_acquire(&_from_interpreted_entry); }
+ address from_interpreted_entry() const;
// access flag
AccessFlags access_flags() const { return _access_flags; }
void set_access_flags(AccessFlags flags) { _access_flags = flags; }
@@ -331,16 +331,11 @@
// method data access
MethodData* method_data() const {
return _method_data;
}
- void set_method_data(MethodData* data) {
- // The store into method must be released. On platforms without
- // total store order (TSO) the reference may become visible before
- // the initialization of data otherwise.
- OrderAccess::release_store(&_method_data, data);
- }
+ void set_method_data(MethodData* data);
MethodCounters* method_counters() const {
return _method_counters;
}
@@ -447,11 +442,11 @@
void remove_unshareable_info();
// nmethod/verified compiler entry
address verified_code_entry();
bool check_code() const; // Not inline to avoid circular ref
- CompiledMethod* volatile code() const { assert( check_code(), "" ); return OrderAccess::load_acquire(&_code); }
+ CompiledMethod* volatile code() const;
void clear_code(bool acquire_lock = true); // Clear out any compiled code
static void set_code(const methodHandle& mh, CompiledMethod* code);
void set_adapter_entry(AdapterHandlerEntry* adapter) {
constMethod()->set_adapter_entry(adapter);
}
@@ -660,11 +655,11 @@
bool is_object_initializer() const;
// compiled code support
// NOTE: code() is inherently racy as deopt can be clearing code
// simultaneously. Use with caution.
- bool has_compiled_code() const { return code() != NULL; }
+ bool has_compiled_code() const;
#ifdef TIERED
bool has_aot_code() const { return aot_code() != NULL; }
#endif
< prev index next >