+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/

Reply via email to