+ if (is_null()) {
+ exceptions_throw_nullpointerexception();
+ return;
+ }
+
+ v = LLNI_vftbl_direct(_handle);
+
+ type = v->arraydesc->arraytype;
+
+ // Special handling for object arrays.
+ if (type == ARRAYTYPE_OBJECT) {
+ ObjectArray array(_handle);
+ array.set_element(index, o);
+ return;
+ }
+
+ // Check if primitive type can be stored.
+ if (!Primitive::unbox_typed(o, type, &value)) {
+/* exceptions_throw_illegalargumentexception("argument type mismatch"); */
+ exceptions_throw_illegalargumentexception();
+ return;
+ }