我在一开始就在每个本机方法调用中调用 EnsureLocalCapacity():
void ensureMemory(JNIEnv *env) {
jint ensureResult = env->EnsureLocalCapacity(MAX_LOCALS_COUNT);
debug("ensure result for %i is %i", MAX_LOCALS_COUNT, ensureResult);
确保 1024 的结果为 0
环境:[0x7fccc60011d0]
并且在几次调用后崩溃env->NewObject()
(异常被clang劫持(我尝试通过clang c-api使用)):
libclang:在索引源文件期间检测到崩溃:{
'source_filename':'/Users/asmirnov/Documents/dev/src/clang_jni/mac/test/TestFile.h''command_line_args'
:['-c','-x' , 'c++'], 'unsaved_files' : [],
'options' : 0, }
env->DeleteLocalRef
因此,尽管我每次不需要本地 var 时都会调用,但似乎超出了 16 个本地引用限制。我应该怎么办?