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


Reply via email to