On 06/20/2012 08:34 PM, v...@apache.org wrote:
Author: vmpn
Date: Thu Jun 21 03:34:05 2012
New Revision: 1352400

URL: http://svn.apache.org/viewvc?rev=1352400&view=rev
Log:
On the javahl-ra branch:

JavaHL: New method for creating java objects linked to their C++ counterpart

[ in subversion/bindings/javahl/native ]

* SVNBase.cpp,
   SVNBase.h
   (createCppBoundObject): New method for creating java objects linked to their
     C++ counterpart

[ in subversion/bindings/javahl/src/org/tigris/subversion/javahl/ ]

* JNIObject.java: Base class for JNI linked java objects

Added:
     
subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/JNIObject.java
Modified:
     subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNBase.cpp
     subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNBase.h

Modified: 
subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNBase.cpp
URL: 
http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNBase.cpp?rev=1352400&r1=1352399&r2=1352400&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNBase.cpp 
(original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNBase.cpp 
Thu Jun 21 03:34:05 2012
@@ -97,3 +97,29 @@ inline void SVNBase::findCppAddrFieldID(
          }
      }
  }
+
+jobject SVNBase::createCppBoundObject(const char *clazzName)
+{
+  JNIEnv *env = JNIUtil::getEnv();
+
+  // Create java session object
+  jclass clazz = env->FindClass(clazzName);
+  if (JNIUtil::isJavaExceptionThrown())
+      return NULL;
+
+  static jmethodID ctor = 0;
+  if (ctor == 0)
+  {

The { are indented two spaces:

http://subversion.apache.org/docs/community-guide/conventions.html

There's other indentation fixes also needed.

+package org.apache.subversion.javahl;
+
+/**
+ *  This class is used internally by the JavaHL implementation and not
+ *  considered part part of the public API.
+ */
+public abstract class JNIObject
+{
+    /**
+     * slot for the address of the native peer.
+     * The JNI code controls this field. If it is set to 0 then
+     * underlying JNI object has been freed
+     */
+    protected long cppAddr;

Can this be final?

Blair

Reply via email to