Branko Čibej <br...@apache.org> writes:

> And I don't see these, either. I checked the code and we explicitly use
> a JNI local frame in the core loop of unparseExternals. Try as I might,
> I can't see where all those local references could be coming from.

ImmutableList::for_each appears to be the problem.  The following ugly
hack is not correct but does resolve the warning:

Index: subversion/bindings/javahl/native/jniwrapper/jni_list.hpp
===================================================================
--- subversion/bindings/javahl/native/jniwrapper/jni_list.hpp   (revision 
1828477)
+++ subversion/bindings/javahl/native/jniwrapper/jni_list.hpp   (working copy)
@@ -172,8 +172,18 @@ class ImmutableList : public BaseImmutableList
   F for_each(F function) const
     {
       Iterator iter(get_iterator());
-      while (iter.has_next())
+      while (true)
+      {
+        m_env.PushLocalFrame(10);
+       bool has_next = iter.has_next();
+       if (!has_next)
+       {
+          m_env.PopLocalFrame();
+         break;
+       }
         function(T(m_env, NativeT(iter.next())));
+        m_env.PopLocalFrame();
+      }
       return function;
     }
 };

-- 
Philip

Reply via email to