INNER CODE UNIT · C++

art_method

tiann/epic · library/src/main/cpp/epic.cpp:142

    jlong art_method = (jlong) env->FromReflectedMethod(method);
    if (art_method % 2 == 1) {
        art_method = reinterpret_cast<jlong>(JniIdManager_DecodeMethodId_(ArtHelper::getJniIdManager(), art_method));
    }
    bool ret;
    if (api_level >= 30) {
        void* current_region = JitCodeCache_GetCurrentRegion(ArtHelper::getJitCodeCache());
        if (api_level >= 31) {
            ret = ((JIT_COMPILE_METHOD4)jit_compile_method_)(jit_compiler_handle_, reinterpret_cast<void*>(self),
                                                             reinterpret_cast<void*>(current_region),
                                                             reinterpret_cast<void*>(art_method), 1);
        } else {
            ret = ((JIT_COMPILE_METHOD3)jit_compile_method_)(jit_compiler_handle_, reinterpret_cast<void*>(self),
                                                             reinterpret_cast<void*>(current_region),
                                                             reinterpret_cast<void*>(art_method), false, false);
        }
    } else if (api_level >= 29) {
        ret = ((JIT_COMPILE_METHOD2) jit_compile_method_)(jit_compiler_handle_,

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…