src/share/vm/interpreter/interpreterRuntime.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/interpreter/interpreterRuntime.cpp	Wed Jun 14 17:41:30 2017
--- new/src/share/vm/interpreter/interpreterRuntime.cpp	Wed Jun 14 17:41:29 2017

*** 394,403 **** --- 394,407 ---- IRT_END IRT_ENTRY(void, InterpreterRuntime::value_array_store(JavaThread* thread, arrayOopDesc* array, int index, void* val)) Klass* klass = array->klass(); assert(klass->is_valueArray_klass() || klass->is_objArray_klass(), "expected value or object array oop"); + + if (ArrayKlass::cast(klass)->element_klass() != ((oop)val)->klass()) { + THROW(vmSymbols::java_lang_ArrayStoreException()); + } if (klass->is_objArray_klass()) { ((objArrayOop) array)->obj_at_put(index, (oop)val); } else { valueArrayOop varray = (valueArrayOop)array;

src/share/vm/interpreter/interpreterRuntime.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File