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 2017/03/04 06:09:50 UTC

svn commit: r1785429 - in /subversion/trunk/subversion/bindings/javahl/native: Array.h StringArray.cpp StringArray.h

Author: brane
Date: Sat Mar  4 06:09:50 2017
New Revision: 1785429

URL: http://svn.apache.org/viewvc?rev=1785429&view=rev
Log:
Make JavaHL's native StringArray container nullable.

* subversion/bindings/javahl/native/Array.h
  (Array::isNull): New method.

* subversion/bindings/javahl/native/StringArray.h
  (StringArray::isNull): New method.
* subversion/bindings/javahl/native/StringArray.cpp
  (StringArray::StringArray): Leave the contents of the container empty if
   the underlying Java object is null.
  (StringArray::array): Return a null APR array if the Java object is null.

Modified:
    subversion/trunk/subversion/bindings/javahl/native/Array.h
    subversion/trunk/subversion/bindings/javahl/native/StringArray.cpp
    subversion/trunk/subversion/bindings/javahl/native/StringArray.h

Modified: subversion/trunk/subversion/bindings/javahl/native/Array.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/Array.h?rev=1785429&r1=1785428&r2=1785429&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/Array.h (original)
+++ subversion/trunk/subversion/bindings/javahl/native/Array.h Sat Mar  4 06:09:50 2017
@@ -45,6 +45,10 @@ class Array
   Array(jobject jobjectsCollection);
   virtual ~Array();
   const std::vector<jobject> &vector(void) const;
+  bool isNull() const
+  {
+    return !m_objectArray;
+  }
 };
 
 #endif // ARRAY_H

Modified: subversion/trunk/subversion/bindings/javahl/native/StringArray.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/StringArray.cpp?rev=1785429&r1=1785428&r2=1785429&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/StringArray.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/StringArray.cpp Sat Mar  4 06:09:50 2017
@@ -38,6 +38,9 @@ StringArray::~StringArray()
 
 const apr_array_header_t *StringArray::array(const SVN::Pool &pool)
 {
+  if (isNull())
+    return NULL;
+
   apr_array_header_t *strings
     = apr_array_make(pool.getPool(), static_cast<int>(m_strings.size()),
                      sizeof(char *));
@@ -77,11 +80,13 @@ StringArray::init(void)
 StringArray::StringArray(jobjectArray jstrings)
     : Array(jstrings), m_strings()
 {
-  init();
+  if (!isNull())
+    init();
 }
 
 StringArray::StringArray(jobject jstringCollection)
     : Array(jstringCollection), m_strings()
 {
-  init();
+  if (!isNull())
+    init();
 }

Modified: subversion/trunk/subversion/bindings/javahl/native/StringArray.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/StringArray.h?rev=1785429&r1=1785428&r2=1785429&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/StringArray.h (original)
+++ subversion/trunk/subversion/bindings/javahl/native/StringArray.h Sat Mar  4 06:09:50 2017
@@ -47,6 +47,10 @@ class StringArray : Array
   ~StringArray();
   const apr_array_header_t *array(const SVN::Pool &pool);
   const std::vector<std::string> &vector(void) const;
+  bool isNull() const
+  {
+    return Array::isNull();
+  }
 };
 
 #endif // STRINGARRAY_H