You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2010/03/10 00:08:32 UTC

svn commit: r921183 - /subversion/trunk/subversion/bindings/javahl/native/RevpropTable.cpp

Author: hwright
Date: Tue Mar  9 23:08:31 2010
New Revision: 921183

URL: http://svn.apache.org/viewvc?rev=921183&view=rev
Log:
JavaHL: Take advantage of the new Array class within another function.

* subversion/bindings/javahl/native/RevpropTable.cpp
  (RevpropTable): Use the Array class to create an array of keys.

Modified:
    subversion/trunk/subversion/bindings/javahl/native/RevpropTable.cpp

Modified: subversion/trunk/subversion/bindings/javahl/native/RevpropTable.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/RevpropTable.cpp?rev=921183&r1=921182&r2=921183&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/RevpropTable.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/RevpropTable.cpp Tue Mar  9 23:08:31 2010
@@ -27,6 +27,7 @@
 #include "RevpropTable.h"
 #include "JNIUtil.h"
 #include "JNIStringHolder.h"
+#include "Array.h"
 #include <apr_tables.h>
 #include <apr_strings.h>
 #include <apr_hash.h>
@@ -93,21 +94,6 @@ RevpropTable::RevpropTable(jobject jrevp
       if (JNIUtil::isExceptionThrown())
         return;
 
-      jclass setClazz = env->FindClass("java/util/Set");
-
-      if (toArray == 0)
-        {
-          toArray = env->GetMethodID(setClazz, "toArray",
-                                    "()[Ljava/lang/Object;");
-          if (JNIUtil::isExceptionThrown())
-            return;
-        }
-
-      jobjectArray jkeyArray = (jobjectArray) env->CallObjectMethod(jkeySet,
-                                                                    toArray);
-      if (JNIUtil::isExceptionThrown())
-        return;
-
       if (get == 0)
         {
           get = env->GetMethodID(mapClazz, "get",
@@ -116,22 +102,17 @@ RevpropTable::RevpropTable(jobject jrevp
             return;
         }
 
-      jint arraySize = env->GetArrayLength(jkeyArray);
-      if (JNIUtil::isExceptionThrown())
-        return;
+      Array keyArray(jkeySet);
+      std::vector<jobject> keys = keyArray.vector();
 
-      for (int i = 0; i < arraySize; ++i)
+      for (std::vector<jobject>::const_iterator it = keys.begin();
+            it < keys.end(); ++it)
         {
-          jobject jpropname = env->GetObjectArrayElement(jkeyArray, i);
+          JNIStringHolder propname((jstring)*it);
           if (JNIUtil::isExceptionThrown())
             return;
 
-          JNIStringHolder propname((jstring)jpropname);
-          if (JNIUtil::isExceptionThrown())
-            return;
-
-          jobject jpropval = env->CallObjectMethod(jrevpropTable, get,
-                                                   jpropname);
+          jobject jpropval = env->CallObjectMethod(jrevpropTable, get, *it);
           if (JNIUtil::isExceptionThrown())
             return;
 
@@ -142,10 +123,6 @@ RevpropTable::RevpropTable(jobject jrevp
           m_revprops[std::string((const char *)propname)]
             = std::string((const char *)propval);
 
-          JNIUtil::getEnv()->DeleteLocalRef(jpropname);
-          if (JNIUtil::isExceptionThrown())
-            return;
-
           JNIUtil::getEnv()->DeleteLocalRef(jpropval);
           if (JNIUtil::isExceptionThrown())
             return;
@@ -154,9 +131,5 @@ RevpropTable::RevpropTable(jobject jrevp
       JNIUtil::getEnv()->DeleteLocalRef(jkeySet);
       if (JNIUtil::isExceptionThrown())
         return;
-
-      JNIUtil::getEnv()->DeleteLocalRef(jkeyArray);
-      if (JNIUtil::isExceptionThrown())
-        return;
     }
 }