Are you talking about maintaining the directory baton in the context of something like an editor drive?
-Hyrum On Fri, May 25, 2012 at 2:29 PM, Vladimir Berezniker <v...@hitechman.com> wrote: > The reason they are long lived is because they are reusable. E.g. directory > can be used for any number of files/directories within it. However, > regarding not needing to keep track of objects I think I see where you > are coming from. At the moment the parent and child objects are tied because > I allocated child pools from parent pools therefore their order of cleanup > is important. The reason for that design was that I could free up child > resources when the parent was disposed even if the children were not. But of > the top of my head I cannot see why it has to be this way. For example child > object pools can be allocated from the global JNI pool instead > thus eliminating the need to track children. Code will be simpler but the > JavaHL users won't be as protected from themselves. > > I need to dig through the code and think about it some more, > > Vladimir > > > On Fri, May 25, 2012 at 2:36 PM, Hyrum K Wright <hyrum.wri...@wandisco.com> > wrote: >> >> +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/ > > -- uberSVN: Apache Subversion Made Easy http://www.uberSVN.com/