Optimize aput-object in interpreter.
Inline ObjectArray::Set test about valid index and valid object. Adding
ObjectArray::IsValidObject method to check for ArrayStoreException and
call it from interpreter.
Change-Id: I99beeb531455049fc189f9b8e8f4f020591f7bab
diff --git a/src/mirror/object_array.h b/src/mirror/object_array.h
index 3d04b39..08a8d62 100644
--- a/src/mirror/object_array.h
+++ b/src/mirror/object_array.h
@@ -30,6 +30,10 @@
T* Get(int32_t i) const SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
+ // Returns true if the object can be stored into the array. If not, throws
+ // an ArrayStoreException and returns false.
+ bool CheckAssignable(T* object) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
+
void Set(int32_t i, T* object) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
// Set element without bound and element type checks, to be used in limited