You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2012/11/05 20:04:06 UTC

svn commit: r1405923 - in /subversion/trunk/subversion/bindings/javahl/native: CreateJ.cpp InputStream.cpp JNIUtil.cpp JNIUtil.h OutputStream.cpp SVNClient.cpp

Author: julianfoad
Date: Mon Nov  5 19:04:06 2012
New Revision: 1405923

URL: http://svn.apache.org/viewvc?rev=1405923&view=rev
Log:
In the JavaHL code, simplify usage of makeJByteArray() by accepting 'void *'
so callers don't need to do so much type-casting, and by adding a version
that accepts a 'svn_string_t' directly.

* subversion/bindings/javahl/native/JNIUtil.h,
  subversion/bindings/javahl/native/JNIUtil.cpp
  (makeJByteArray): Take 'const void *' instead of 'const signed
    char *'. Add an overloaded version that takes 'svn_string_t *'.

* subversion/bindings/javahl/native/CreateJ.cpp
  (Checksum, PropertyMap): Simplify calls.

* subversion/bindings/javahl/native/InputStream.cpp
  (read): Same.


* subversion/bindings/javahl/native/OutputStream.cpp
  (write): Same.

* subversion/bindings/javahl/native/SVNClient.cpp
  (propertyGet, revProperty): Same.

Modified:
    subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp
    subversion/trunk/subversion/bindings/javahl/native/InputStream.cpp
    subversion/trunk/subversion/bindings/javahl/native/JNIUtil.cpp
    subversion/trunk/subversion/bindings/javahl/native/JNIUtil.h
    subversion/trunk/subversion/bindings/javahl/native/OutputStream.cpp
    subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp

Modified: subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp?rev=1405923&r1=1405922&r2=1405923&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp Mon Nov  5 19:04:06 2012
@@ -207,9 +207,8 @@ CreateJ::Checksum(const svn_checksum_t *
     }
 
   jbyteArray jdigest
-    = JNIUtil::makeJByteArray(
-        reinterpret_cast<const signed char *>(checksum->digest),
-        static_cast<int>(svn_checksum_size(checksum)));
+    = JNIUtil::makeJByteArray(checksum->digest,
+                              static_cast<int>(svn_checksum_size(checksum)));
   if (JNIUtil::isExceptionThrown())
     POP_AND_RETURN_NULL;
 
@@ -1036,9 +1035,7 @@ jobject CreateJ::PropertyMap(apr_hash_t 
       if (JNIUtil::isJavaExceptionThrown())
         POP_AND_RETURN_NULL;
 
-      jbyteArray jpropVal = JNIUtil::makeJByteArray(
-                              reinterpret_cast<const signed char *>(val->data),
-                              static_cast<int>(val->len));
+      jbyteArray jpropVal = JNIUtil::makeJByteArray(val);
       if (JNIUtil::isJavaExceptionThrown())
         POP_AND_RETURN_NULL;
 

Modified: subversion/trunk/subversion/bindings/javahl/native/InputStream.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/InputStream.cpp?rev=1405923&r1=1405922&r2=1405923&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/InputStream.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/InputStream.cpp Mon Nov  5 19:04:06 2012
@@ -89,9 +89,7 @@ svn_error_t *InputStream::read(void *bat
     }
 
   // Allocate a Java byte array to read the data.
-  jbyteArray data = JNIUtil::makeJByteArray
-                       (reinterpret_cast<const signed char*>(buffer),
-                        static_cast<int>(*len));
+  jbyteArray data = JNIUtil::makeJByteArray(buffer, static_cast<int>(*len));
   if (JNIUtil::isJavaExceptionThrown())
     return SVN_NO_ERROR;
 

Modified: subversion/trunk/subversion/bindings/javahl/native/JNIUtil.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/JNIUtil.cpp?rev=1405923&r1=1405922&r2=1405923&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/JNIUtil.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/JNIUtil.cpp Mon Nov  5 19:04:06 2012
@@ -795,7 +795,7 @@ jobject JNIUtil::createDate(apr_time_t t
  * @param data      the character array
  * @param length    the number of characters in the array
  */
-jbyteArray JNIUtil::makeJByteArray(const signed char *data, int length)
+jbyteArray JNIUtil::makeJByteArray(const void *data, int length)
 {
   if (data == NULL)
     {
@@ -827,6 +827,15 @@ jbyteArray JNIUtil::makeJByteArray(const
 }
 
 /**
+ * Create a Java byte array from an svn_string_t.
+ * @param str       the string
+ */
+jbyteArray JNIUtil::makeJByteArray(const svn_string_t *str)
+{
+  return JNIUtil::makeJByteArray(str->data, static_cast<int>(str->len));
+}
+
+/**
  * Build the error message from the svn error into buffer.  This
  * method calls itselft recursively for all the chained errors
  *

Modified: subversion/trunk/subversion/bindings/javahl/native/JNIUtil.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/JNIUtil.h?rev=1405923&r1=1405922&r2=1405923&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/JNIUtil.h (original)
+++ subversion/trunk/subversion/bindings/javahl/native/JNIUtil.h Mon Nov  5 19:04:06 2012
@@ -41,6 +41,8 @@ struct svn_error_t;
 
 #define JAVA_PACKAGE "org/apache/subversion/javahl"
 
+struct svn_string_t;
+
 /**
  * Class to hold a number of JNI related utility methods.  No Objects
  * of this class are ever created.
@@ -62,7 +64,8 @@ class JNIUtil
                                    int aprErr = -1);
 
   static void throwNullPointerException(const char *message);
-  static jbyteArray makeJByteArray(const signed char *data, int length);
+  static jbyteArray makeJByteArray(const void *data, int length);
+  static jbyteArray makeJByteArray(const svn_string_t *str);
   static jobject createDate(apr_time_t time);
   static void logMessage(const char *message);
   static int getLogLevel();

Modified: subversion/trunk/subversion/bindings/javahl/native/OutputStream.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/OutputStream.cpp?rev=1405923&r1=1405922&r2=1405923&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/OutputStream.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/OutputStream.cpp Mon Nov  5 19:04:06 2012
@@ -95,9 +95,7 @@ svn_error_t *OutputStream::write(void *b
     }
 
   // convert the data to a Java byte array
-  jbyteArray data = JNIUtil::makeJByteArray
-                       (reinterpret_cast<const signed char*>(buffer),
-                        static_cast<int>(*len));
+  jbyteArray data = JNIUtil::makeJByteArray(buffer, static_cast<int>(*len));
   if (JNIUtil::isJavaExceptionThrown())
     return SVN_NO_ERROR;
 

Modified: subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp?rev=1405923&r1=1405922&r2=1405923&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp Mon Nov  5 19:04:06 2012
@@ -855,9 +855,7 @@ jbyteArray SVNClient::propertyGet(const 
     if (propval == NULL)
         return NULL;
 
-    return JNIUtil::makeJByteArray
-              (reinterpret_cast<const signed char *>(propval->data),
-               static_cast<int>(propval->len));
+    return JNIUtil::makeJByteArray(propval);
 }
 
 void SVNClient::properties(const char *path, Revision &revision,
@@ -1164,9 +1162,7 @@ jbyteArray SVNClient::revProperty(const 
     if (propval == NULL)
         return NULL;
 
-    return JNIUtil::makeJByteArray
-              (reinterpret_cast<const signed char *>(propval->data),
-               static_cast<int>(propval->len));
+    return JNIUtil::makeJByteArray(propval);
 }
 void SVNClient::relocate(const char *from, const char *to, const char *path,
                          bool ignoreExternals)