summaryrefslogtreecommitdiff
path: root/runtime/mirror/class_loader.h
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/mirror/class_loader.h')
-rw-r--r--runtime/mirror/class_loader.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/runtime/mirror/class_loader.h b/runtime/mirror/class_loader.h
index c2a65d62e2..9d4fe9654d 100644
--- a/runtime/mirror/class_loader.h
+++ b/runtime/mirror/class_loader.h
@@ -24,6 +24,12 @@ namespace art {
struct ClassLoaderOffsets;
class ClassTable;
+namespace lambda {
+
+class BoxClassTable;
+
+} // namespace lambda
+
namespace mirror {
class Class;
@@ -60,6 +66,16 @@ class MANAGED ClassLoader : public Object {
reinterpret_cast<uint64_t>(allocator));
}
+ lambda::BoxClassTable* GetLambdaProxyCache() SHARED_REQUIRES(Locks::mutator_lock_) {
+ return reinterpret_cast<lambda::BoxClassTable*>(
+ GetField64(OFFSET_OF_OBJECT_MEMBER(ClassLoader, lambda_proxy_cache_)));
+ }
+
+ void SetLambdaProxyCache(lambda::BoxClassTable* cache) SHARED_REQUIRES(Locks::mutator_lock_) {
+ SetField64<false>(OFFSET_OF_OBJECT_MEMBER(ClassLoader, lambda_proxy_cache_),
+ reinterpret_cast<uint64_t>(cache));
+ }
+
private:
// Visit instance fields of the class loader as well as its associated classes.
// Null class loader is handled by ClassLinker::VisitClassRoots.
@@ -76,6 +92,7 @@ class MANAGED ClassLoader : public Object {
uint32_t padding_ ATTRIBUTE_UNUSED;
uint64_t allocator_;
uint64_t class_table_;
+ uint64_t lambda_proxy_cache_;
friend struct art::ClassLoaderOffsets; // for verifying offset information
friend class Object; // For VisitReferences