diff options
Diffstat (limited to 'runtime/mirror/array-inl.h')
-rw-r--r-- | runtime/mirror/array-inl.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/runtime/mirror/array-inl.h b/runtime/mirror/array-inl.h index 7c5de5eae3..90aaccdc4b 100644 --- a/runtime/mirror/array-inl.h +++ b/runtime/mirror/array-inl.h @@ -27,10 +27,13 @@ namespace art { namespace mirror { +template<VerifyObjectFlags kVerifyFlags> inline size_t Array::SizeOf() { // This is safe from overflow because the array was already allocated, so we know it's sane. - size_t component_size = GetClass()->GetComponentSize(); - int32_t component_count = GetLength(); + size_t component_size = GetClass<kVerifyFlags>()->GetComponentSize(); + // Don't need to check this since we already check this in GetClass. + int32_t component_count = + GetLength<static_cast<VerifyObjectFlags>(kVerifyFlags & ~kVerifyThis)>(); size_t header_size = sizeof(Object) + (component_size == sizeof(int64_t) ? 8 : 4); size_t data_size = component_count * component_size; return header_size + data_size; |