Author: brane
Date: Fri Jun 6 11:50:16 2014
New Revision: 1600851
URL: http://svn.apache.org/r1600851
Log:
Simplify copying Java strings into memory allocated from a pool.
[in subversion/bindings/javahl]
* native/jniwrapper/jni_string.hpp (Java::String::strdup): New method.
* native/jniwrapper/jni_base.cpp (Java::String::strdup):
Implement the method so that it automagically creates the string
contents object and copies the contents to the pool.
Modified:
subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_base.cpp
subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_string.hpp
Modified:
subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_base.cpp
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_base.cpp?rev=1600851&r1=1600850&r2=1600851&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_base.cpp
(original)
+++ subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_base.cpp
Fri Jun 6 11:50:16 2014
@@ -254,6 +254,11 @@ jstring Class::get_name() const
const char* const String::m_class_name = "java/lang/String";
+const char* String::strdup(apr_pool_t* pool) const
+{
+ return apr_pstrdup(pool, String::Contents(*this).c_str());
+}
+
void String::MutableContents::set_value(const char* new_text)
{
if (!m_new_text)
Modified:
subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_string.hpp
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_string.hpp?rev=1600851&r1=1600850&r2=1600851&view=diff
==============================================================================
---
subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_string.hpp
(original)
+++
subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_string.hpp
Fri Jun 6 11:50:16 2014
@@ -27,6 +27,8 @@
#include <cstring>
#include <string>
+#include <apr_pools.h>
+
#include "jni_object.hpp"
namespace Java {
@@ -90,6 +92,12 @@ public:
}
/**
+ * Copies the contents of the modified UTF-8 representation of the
+ * string into @a pool.
+ */
+ const char* strdup(apr_pool_t* pool) const;
+
+ /**
* Accessor class for the contents of the string.
*
* Objects of this class should be created within the scope where