+1 to commit to trunk. Please include "Approved by: hwright" in the log message.
Out of curiosity, why do directory objects need to live across method invocations with the RA interface? I would have thought that even if this is true, it won't matter, since those objects would be pure Java objects handled by the JVM. -Hyrum On Fri, May 25, 2012 at 12:35 PM, Vladimir Berezniker <v...@hitechman.com> wrote: > Greetings, > > Currently SVNBase class uses a member variable jthis to hold a copy of > jobject > reference. This variable lives as long as SVNClient object lives, however, > the > reference itself is only valid during a single JNI call. To address this > mismatch > the attached patch passes the jobject reference as a parameter instead. > This > eliminates the risk of the jobject reference being misused outside the > scope > where it is valid. This mismatch becomes more evident on JavaHL > RA editor API is implemented where objects like directories live across > method > calls. > > [[[ > JavaHL: Explicitly pass jobject jthis when processing dispose() call rather > than stashing a reference in the SVNBase class where it can be misused > later > > [ in subversion/bindings/javahl/native ] > > * SVNBase.cpp, > SVNBase.h > (dispose, jthis): Accept jobject jthis as explicit parameter to dispose() > and > delete the member variable jthis > > * SVNClient.cpp, > SVNClient.h, > SVNRepos.cpp, > SVNRepos.h > (dispose): Accept object jthis as explicit parameter and pass it to > SVNBase::dispose > > * org_apache_subversion_javahl_SVNClient.cpp, > org_apache_subversion_javahl_SVNRepos.cpp > (Java_org_apache_subversion_javahl_SVNClient_dispose, > Java_org_apache_subversion_javahl_SVNRepos_dispose): > Pass object jthis as explicit parameter and pass it to the C++ wrapper > class > ]]] > > Thank you, > > Vladimir -- uberSVN: Apache Subversion Made Easy http://www.uberSVN.com/