diff options
-rw-r--r-- | runtime/interpreter/interpreter.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/runtime/interpreter/interpreter.cc b/runtime/interpreter/interpreter.cc index 59f0ac2..1677e80 100644 --- a/runtime/interpreter/interpreter.cc +++ b/runtime/interpreter/interpreter.cc @@ -127,7 +127,8 @@ static void UnstartedRuntimeInvoke(Thread* self, MethodHelper& mh, args[0] = reinterpret_cast<uint32_t>(found); EnterInterpreterFromInvoke(self, c, field.get(), args, NULL); result->SetL(field.get()); - } else if (name == "void java.lang.System.arraycopy(java.lang.Object, int, java.lang.Object, int, int)") { + } else if (name == "void java.lang.System.arraycopy(java.lang.Object, int, java.lang.Object, int, int)" || + name == "void java.lang.System.arraycopy(char[], int, char[], int, int)") { // Special case array copying without initializing System. Class* ctype = shadow_frame->GetVRegReference(arg_offset)->GetClass()->GetComponentType(); jint srcPos = shadow_frame->GetVReg(arg_offset + 1); |