void fastiva_Dalvik_java_lang_System_arraycopyCharUnchecked(Unicod_ap srcArray, jint srcPos, Unicod_ap dstArray, jint dstPos, jint length) { assert(srcArray != NULL && dstArray != NULL); assert(srcPos >= 0 && dstPos >= 0 && length >= 0); assert(srcArray->length() >= srcPos + length); assert(dstArray->length() >= dstPos + length); memcpy(dstArray->getBuffer_unsafe$() + dstPos, srcArray->getBuffer_unsafe$() + srcPos, length * sizeof(jchar)); #endif }
void java_lang_String::getChars(jint srcBegin, jint srcEnd, Unicod_ap dst, jint dstBegin) { if (srcBegin < 0) { THROW_EX_NEW$(java_lang_StringIndexOutOfBoundsException, (srcBegin)); } if (srcEnd > this->m_count) { THROW_EX_NEW$(java_lang_StringIndexOutOfBoundsException, (srcEnd)); } if (srcBegin > srcEnd) { THROW_EX_NEW$(java_lang_StringIndexOutOfBoundsException, (srcEnd - srcBegin)); } if (dst == FASTIVA_NULL) { fastiva_throwNullPointerException(); } int copyLen = (srcEnd - srcBegin); if (copyLen == 0) { return; } if (dst->length() - dstBegin < copyLen) { fastiva_throwArrayStoreException(); } Unicod_A::Buffer dst_buf(dst, dstBegin, copyLen); unicod *pDest = dst_buf; srcBegin += this->m_offset; Unicod_A::Buffer src_buf(this->m_value, srcBegin, copyLen); unicod *pSrc = src_buf; memcpy(pDest, pSrc, copyLen*sizeof(unicod)); }