summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2015-09-28 08:36:43 -0700
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2015-09-28 08:37:34 -0700
commit77020281ae7e95eccc990afc52ff04aabf696c22 (patch)
treeef5079ee17d5fee799eb0f81ede82db430c7a5f2
parentf1a992330839e9deb2aec6085afb5ac7e1d85b2a (diff)
downloadmicropython-77020281ae7e95eccc990afc52ff04aabf696c22.tar.gz
micropython-77020281ae7e95eccc990afc52ff04aabf696c22.zip
unix/modjni: call_method: Delete done local references in loop.
To avoid local ref table overflow.
-rw-r--r--unix/modjni.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/unix/modjni.c b/unix/modjni.c
index b4af9ca93c..44a0b47e7a 100644
--- a/unix/modjni.c
+++ b/unix/modjni.c
@@ -378,12 +378,16 @@ STATIC mp_obj_t call_method(jobject obj, const char *name, jarray methods, bool
}
JJ(ReleaseStringUTFChars, name_o, decl);
+ JJ(DeleteLocalRef, name_o);
+ JJ(DeleteLocalRef, meth);
return ret;
}
}
next_method:
JJ(ReleaseStringUTFChars, name_o, decl);
+ JJ(DeleteLocalRef, name_o);
+ JJ(DeleteLocalRef, meth);
}
nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError, "method not found"));