|
1 | 1 | /* |
2 | | - * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved. |
| 2 | + * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. |
3 | 3 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 | 4 | * |
5 | 5 | * This code is free software; you can redistribute it and/or modify it |
@@ -4020,14 +4020,20 @@ int java_lang_ClassLoader::name_offset = -1; |
4020 | 4020 | int java_lang_ClassLoader::nameAndId_offset = -1; |
4021 | 4021 | int java_lang_ClassLoader::unnamedModule_offset = -1; |
4022 | 4022 |
|
4023 | | -ClassLoaderData* java_lang_ClassLoader::loader_data(oop loader) { |
| 4023 | +ClassLoaderData* java_lang_ClassLoader::loader_data_acquire(oop loader) { |
4024 | 4024 | assert(loader != NULL && oopDesc::is_oop(loader), "loader must be oop"); |
4025 | | - return HeapAccess<>::load_at(loader, _loader_data_offset); |
| 4025 | + return HeapAccess<MO_ACQUIRE>::load_at(loader, _loader_data_offset); |
4026 | 4026 | } |
4027 | 4027 |
|
4028 | | -ClassLoaderData* java_lang_ClassLoader::cmpxchg_loader_data(ClassLoaderData* new_data, oop loader, ClassLoaderData* expected_data) { |
| 4028 | +ClassLoaderData* java_lang_ClassLoader::loader_data_raw(oop loader) { |
4029 | 4029 | assert(loader != NULL && oopDesc::is_oop(loader), "loader must be oop"); |
4030 | | - return HeapAccess<>::atomic_cmpxchg_at(new_data, loader, _loader_data_offset, expected_data); |
| 4030 | + return RawAccess<>::load_at(loader, _loader_data_offset); |
| 4031 | +} |
| 4032 | + |
| 4033 | +void java_lang_ClassLoader::release_set_loader_data(oop loader, ClassLoaderData* new_data) { |
| 4034 | + assert(loader != NULL, "loader must not be NULL"); |
| 4035 | + assert(oopDesc::is_oop(loader), "loader must be oop"); |
| 4036 | + HeapAccess<MO_RELEASE>::store_at(loader, _loader_data_offset, new_data); |
4031 | 4037 | } |
4032 | 4038 |
|
4033 | 4039 | #define CLASSLOADER_FIELDS_DO(macro) \ |
|
0 commit comments