void array_objectarray_element_set(java_handle_objectarray_t *a, int32_t index, java_handle_t *value)
{
- arraydescriptor *ad;
- classinfo *cc;
- int32_t size;
+ int32_t size;
if (a == NULL) {
exceptions_throw_nullpointerexception();
return;
}
- /* TODO Write inline functions for that and use LLNI. */
-
- LLNI_CRITICAL_START;
-
- ad = a->header.objheader.vftbl->arraydesc;
- cc = ad->componentvftbl->class;
+ /* Sanity check. */
- LLNI_CRITICAL_END;
+ assert(a->header.objheader.vftbl->arraydesc->arraytype == ARRAYTYPE_OBJECT);
- if (ad->arraytype == ARRAYTYPE_OBJECT) {
- if (value != NULL) {
- if (builtin_instanceof(value, cc) == false) {
- exceptions_throw_illegalargumentexception();
- return;
- }
+ if (value != NULL) {
+ if (builtin_canstore(a, value) == false) {
+ exceptions_throw_illegalargumentexception();
+ return;
}
}