[[[
JavaHL: Added support for creating of svn_string_t from JNIByteArray
[ in subversion/bindings/javahl/native ]
* JNIByteArray.cpp, JNIByteArray.h
(getLength): Mark as const as the function does not alter class data
and can be used by other const functions
(getSvnString): New function to convert JNI byte array to svn_string_t
]]]
Index: subversion/bindings/javahl/native/JNIByteArray.h
===================================================================
--- subversion/bindings/javahl/native/JNIByteArray.h (revision 1328758)
+++ subversion/bindings/javahl/native/JNIByteArray.h (working copy)
@@ -28,6 +28,8 @@
#define JNIBYTEARRAY_H
#include <jni.h>
+#include "Pool.h"
+#include "svn_string.h"
/**
* This class holds a Java byte array to give easy access to its
@@ -54,7 +56,8 @@ class JNIByteArray
public:
bool isNull() const;
const signed char *getBytes() const;
- int getLength();
+ const svn_string_t *getSvnString(SVN::Pool pool) const;
+ int getLength() const;
JNIByteArray(jbyteArray jba, bool deleteByteArray = false);
~JNIByteArray();
};
Index: subversion/bindings/javahl/native/JNIByteArray.cpp
===================================================================
--- subversion/bindings/javahl/native/JNIByteArray.cpp (revision 1328758)
+++ subversion/bindings/javahl/native/JNIByteArray.cpp (working copy)
@@ -66,7 +66,7 @@ JNIByteArray::~JNIByteArray()
* Returns the number of bytes in the byte array.
* @return the number of bytes
*/
-int JNIByteArray::getLength()
+int JNIByteArray::getLength() const
{
if (m_data == NULL)
return 0;
@@ -91,3 +91,15 @@ bool JNIByteArray::isNull() const
{
return m_data == NULL;
}
+
+const svn_string_t *JNIByteArray::getSvnString(SVN::Pool pool) const
+{
+ if (isNull())
+ {
+ return NULL;
+ }
+
+ svn_string_t * val = svn_string_ncreate((const char *)getBytes(),
getLength(), pool.getPool());
+
+ return val;
+}