INNER CODE UNIT · C++
i
tiann/epic · library/src/main/cpp/epic.cpp:213
int i = cacheflush(addr, addr + len, 0);
LOGV("arm cacheflush for, %ul", addr);
if (i == -1) {
LOGV("cache flush failed: %s (%d)", strerror(errno), errno);
return JNI_FALSE;
}
#elif defined(__aarch64__)
char* begin = reinterpret_cast<char*>(addr);
__builtin___clear_cache(begin, begin + len);
LOGV("aarch64 __builtin___clear_cache, %p", (void*)begin);
#endif
return JNI_TRUE;
}
void epic_MakeInitializedClassVisibilyInitialized(JNIEnv *env, jclass, jlong self) {
if (api_level >= 30 && ClassLinker_MakeInitializedClassesVisiblyInitialized_ && ArtHelper::getClassLinker()) {
ClassLinker_MakeInitializedClassesVisiblyInitialized_(ArtHelper::getClassLinker(), reinterpret_cast<void*>(self), true);
}