You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by br...@apache.org on 2013/06/25 00:37:30 UTC
svn commit: r1496245 - in
/subversion/trunk/subversion/bindings/javahl/native: RevpropTable.cpp
RevpropTable.h
Author: brane
Date: Mon Jun 24 22:37:29 2013
New Revision: 1496245
URL: http://svn.apache.org/r1496245
Log:
Unlike the client wrapper, the JavaHL RA wrapper treats revision property
values as byte arrays. Enhance the helper class to deal with that.
* subversion/bindings/javahl/native/RevpropTable.h
(RevpropTable::RevpropTable): Add optional parameter bytearray_values.
subversion/bindings/javahl/native/RevpropTable.cpp
(RevpropTable::RevpropTable): When bytearray_values is true, assume
values in the revprop table are byte[], not String.
Modified:
subversion/trunk/subversion/bindings/javahl/native/RevpropTable.cpp
subversion/trunk/subversion/bindings/javahl/native/RevpropTable.h
Modified: subversion/trunk/subversion/bindings/javahl/native/RevpropTable.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/RevpropTable.cpp?rev=1496245&r1=1496244&r2=1496245&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/RevpropTable.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/RevpropTable.cpp Mon Jun 24 22:37:29 2013
@@ -27,6 +27,7 @@
#include "RevpropTable.h"
#include "JNIUtil.h"
#include "JNIStringHolder.h"
+#include "JNIByteArray.h"
#include "Array.h"
#include <apr_tables.h>
#include <apr_strings.h>
@@ -71,7 +72,7 @@ apr_hash_t *RevpropTable::hash(const SVN
return revprop_table;
}
-RevpropTable::RevpropTable(jobject jrevpropTable)
+RevpropTable::RevpropTable(jobject jrevpropTable, bool bytearray_values)
{
m_revpropTable = jrevpropTable;
@@ -116,12 +117,27 @@ RevpropTable::RevpropTable(jobject jrevp
if (JNIUtil::isExceptionThrown())
return;
- JNIStringHolder propval((jstring)jpropval);
- if (JNIUtil::isExceptionThrown())
- return;
+ std::string pv;
+ if (bytearray_values)
+ {
+ JNIByteArray propval((jbyteArray)jpropval);
+ if (JNIUtil::isExceptionThrown())
+ return;
+ if (!propval.isNull())
+ pv = std::string(
+ reinterpret_cast<const char*>(propval.getBytes()),
+ propval.getLength());
+ }
+ else
+ {
+ JNIStringHolder propval((jstring)jpropval);
+ if (JNIUtil::isExceptionThrown())
+ return;
+ if (NULL != static_cast<const char *>(propval))
+ pv = static_cast<const char *>(propval);
+ }
- m_revprops[std::string(static_cast<const char *>(propname))]
- = std::string(static_cast<const char *>(propval));
+ m_revprops[std::string(static_cast<const char *>(propname))] = pv;
JNIUtil::getEnv()->DeleteLocalRef(jpropval);
}
Modified: subversion/trunk/subversion/bindings/javahl/native/RevpropTable.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/RevpropTable.h?rev=1496245&r1=1496244&r2=1496245&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/RevpropTable.h (original)
+++ subversion/trunk/subversion/bindings/javahl/native/RevpropTable.h Mon Jun 24 22:37:29 2013
@@ -42,7 +42,7 @@ class RevpropTable
std::map<std::string, std::string> m_revprops;
jobject m_revpropTable;
public:
- RevpropTable(jobject jrevpropTable);
+ RevpropTable(jobject jrevpropTable, bool bytearray_values=false);
~RevpropTable();
apr_hash_t *hash(const SVN::Pool &pool, bool nullIfEmpty = true);
};