summaryrefslogtreecommitdiffstats
path: root/runtime/mirror/class.h
diff options
context:
space:
mode:
authorHiroshi Yamauchi <yamauchi@google.com>2014-05-09 11:45:53 -0700
committerHiroshi Yamauchi <yamauchi@google.com>2014-05-09 11:50:32 -0700
commit25023c744c4388a6459b21cc3babf8c602b024a2 (patch)
tree6d266d8eb8ed442e1dfeb5102ed9ed38a5ee83d9 /runtime/mirror/class.h
parent3d1e6642d350e23fa85d4cfcb03413a576880396 (diff)
downloadart-25023c744c4388a6459b21cc3babf8c602b024a2.zip
art-25023c744c4388a6459b21cc3babf8c602b024a2.tar.gz
art-25023c744c4388a6459b21cc3babf8c602b024a2.tar.bz2
Make it possible to disable read barriers in Class::GetObjectSize()
This is a leftover from cl/91831 (commit 9103c86a98524e9ddfd14f8cee56e919f68eee9b) that attempted to make it possible to disable read barriers in Object::SizeOf(). Bug: 12687968 Change-Id: I2b05076832936881ec61bc21b6eb6b7c04e0a1f0
Diffstat (limited to 'runtime/mirror/class.h')
-rw-r--r--runtime/mirror/class.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/runtime/mirror/class.h b/runtime/mirror/class.h
index 00ecead..1f393db 100644
--- a/runtime/mirror/class.h
+++ b/runtime/mirror/class.h
@@ -366,6 +366,8 @@ class MANAGED Class : public Object {
return GetComponentType<kVerifyFlags, kReadBarrierOption>() != NULL;
}
+ template<VerifyObjectFlags kVerifyFlags = kDefaultVerifyFlags,
+ ReadBarrierOption kReadBarrierOption = kWithReadBarrier>
bool IsClassClass() SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
bool IsStringClass() const;
@@ -423,10 +425,13 @@ class MANAGED Class : public Object {
Object* AllocNonMovableObject(Thread* self)
SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
+ template<VerifyObjectFlags kVerifyFlags = kDefaultVerifyFlags,
+ ReadBarrierOption kReadBarrierOption = kWithReadBarrier>
bool IsVariableSize() SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) {
// Classes and arrays vary in size, and so the object_size_ field cannot
// be used to get their instance size
- return IsClassClass() || IsArrayClass();
+ return IsClassClass<kVerifyFlags, kReadBarrierOption>() ||
+ IsArrayClass<kVerifyFlags, kReadBarrierOption>();
}
template<VerifyObjectFlags kVerifyFlags = kDefaultVerifyFlags,
@@ -443,6 +448,8 @@ class MANAGED Class : public Object {
void SetClassSize(uint32_t new_class_size)
SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
+ template<VerifyObjectFlags kVerifyFlags = kDefaultVerifyFlags,
+ ReadBarrierOption kReadBarrierOption = kWithReadBarrier>
uint32_t GetObjectSize() SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
void SetObjectSize(uint32_t new_object_size) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) {