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 15:29:34 UTC
svn commit: r921364 - in /subversion/trunk/subversion/bindings/javahl:
native/org_apache_subversion_javahl_SVNClient.cpp
src/org/apache/subversion/javahl/SVNClient.java
Author: hwright
Date: Wed Mar 10 14:29:33 2010
New Revision: 921364
URL: http://svn.apache.org/viewvc?rev=921364&view=rev
Log:
JavaHL: More nativization of collections, this time with revision range lists.
[ in subversion/bindings/javahl/ ]
* native/org_apache_subversion_javahl_SVNClient.cpp
(Java_org_apache_subversion_javahl_SVNClient_logMessages,
Java_org_apache_subversion_javahl_SVNClient_merge__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_util_List_2Ljava_lang_String_2ZIZZZ):
Adjust to unpack the list of ranges.
* src/org/apache/subversion/javahl/SVNClient.java
(logMessages, merge): Pass the List of RevisionRanges directly to the native
implementations, remove wrappers.
Modified:
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
Modified: subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp?rev=921364&r1=921363&r2=921364&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp Wed Mar 10 14:29:33 2010
@@ -261,9 +261,9 @@ Java_org_apache_subversion_javahl_SVNCli
JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_logMessages
(JNIEnv *env, jobject jthis, jstring jpath, jobject jpegRevision,
- jobjectArray jranges, jboolean jstopOnCopy,
- jboolean jdisoverPaths, jboolean jincludeMergedRevisions,
- jobject jrevProps, jlong jlimit, jobject jlogMessageCallback)
+ jobject jranges, jboolean jstopOnCopy, jboolean jdisoverPaths,
+ jboolean jincludeMergedRevisions, jobject jrevProps, jlong jlimit,
+ jobject jlogMessageCallback)
{
JNIEntry(SVNClient, logMessages);
SVNClient *cl = SVNClient::getCppObject(jthis);
@@ -287,22 +287,17 @@ Java_org_apache_subversion_javahl_SVNCli
return;
// Build the revision range vector from the Java array.
- std::vector<RevisionRange> revisionRanges;
-
- jint arraySize = env->GetArrayLength(jranges);
+ Array ranges(jranges);
if (JNIUtil::isExceptionThrown())
return;
- if (JNIUtil::isExceptionThrown())
- return;
+ std::vector<RevisionRange> revisionRanges;
+ std::vector<jobject> rangeVec = ranges.vector();
- for (int i = 0; i < arraySize; ++i)
+ for (std::vector<jobject>::const_iterator it = rangeVec.begin();
+ it < rangeVec.end(); ++it)
{
- jobject elem = env->GetObjectArrayElement(jranges, i);
- if (JNIUtil::isExceptionThrown())
- return;
-
- RevisionRange revisionRange(elem);
+ RevisionRange revisionRange(*it);
if (JNIUtil::isExceptionThrown())
return;
@@ -871,10 +866,10 @@ Java_org_apache_subversion_javahl_SVNCli
}
JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_merge__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2_3Lorg_apache_subversion_javahl_RevisionRange_2Ljava_lang_String_2ZIZZZ
+Java_org_apache_subversion_javahl_SVNClient_merge__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_util_List_2Ljava_lang_String_2ZIZZZ
(JNIEnv *env, jobject jthis, jstring jpath, jobject jpegRevision,
- jobjectArray jranges, jstring jlocalPath, jboolean jforce,
- jint jdepth, jboolean jignoreAncestry, jboolean jdryRun, jboolean jrecordOnly)
+ jobject jranges, jstring jlocalPath, jboolean jforce, jint jdepth,
+ jboolean jignoreAncestry, jboolean jdryRun, jboolean jrecordOnly)
{
JNIEntry(SVNClient, merge);
SVNClient *cl = SVNClient::getCppObject(jthis);
@@ -897,22 +892,17 @@ Java_org_apache_subversion_javahl_SVNCli
return;
// Build the revision range vector from the Java array.
- std::vector<RevisionRange> revisionRanges;
-
- jint arraySize = env->GetArrayLength(jranges);
+ Array ranges(jranges);
if (JNIUtil::isExceptionThrown())
return;
- if (JNIUtil::isExceptionThrown())
- return;
+ std::vector<RevisionRange> revisionRanges;
+ std::vector<jobject> rangeVec = ranges.vector();
- for (int i = 0; i < arraySize; ++i)
+ for (std::vector<jobject>::const_iterator it = rangeVec.begin();
+ it < rangeVec.end(); ++it)
{
- jobject elem = env->GetObjectArrayElement(jranges, i);
- if (JNIUtil::isExceptionThrown())
- return;
-
- RevisionRange revisionRange(elem);
+ RevisionRange revisionRange(*it);
if (JNIUtil::isExceptionThrown())
return;
Modified: subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java?rev=921364&r1=921363&r2=921364&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java (original)
+++ subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java Wed Mar 10 14:29:33 2010
@@ -154,35 +154,14 @@ public class SVNClient implements ISVNCl
/**
* @since 1.6
*/
- public void logMessages(String path,
- Revision pegRevision,
- List<RevisionRange> revisionRanges,
- boolean stopOnCopy,
- boolean discoverPath,
- boolean includeMergedRevisions,
- Set<String> revProps,
- long limit,
- LogMessageCallback callback)
- throws ClientException
- {
- this.logMessages(path, pegRevision,
- revisionRanges == null ? null
- : revisionRanges.toArray(new RevisionRange[
- revisionRanges.size()]),
- stopOnCopy, discoverPath, includeMergedRevisions,
- revProps, limit, callback);
- }
-
- private native void logMessages(String path,
- Revision pegRevision,
- RevisionRange[] revisionRanges,
- boolean stopOnCopy,
- boolean discoverPath,
- boolean includeMergedRevisions,
- Set<String> revProps,
- long limit,
- LogMessageCallback callback)
+ public native void logMessages(String path, Revision pegRevision,
+ List<RevisionRange> revisionRanges,
+ boolean stopOnCopy, boolean discoverPath,
+ boolean includeMergedRevisions,
+ Set<String> revProps, long limit,
+ LogMessageCallback callback)
throws ClientException;
+
/**
* @since 1.5
*/
@@ -354,22 +333,10 @@ public class SVNClient implements ISVNCl
/**
* @since 1.5
*/
- public void merge(String path, Revision pegRevision,
- List<RevisionRange> revisions, String localPath,
- boolean force, int depth, boolean ignoreAncestry,
- boolean dryRun, boolean recordOnly)
- throws ClientException
- {
- this.merge(path, pegRevision,
- revisions == null ? null
- : revisions.toArray(new RevisionRange[revisions.size()]),
- localPath, force, depth, ignoreAncestry, dryRun, recordOnly);
- }
-
- private native void merge(String path, Revision pegRevision,
- RevisionRange[] revisions, String localPath,
- boolean force, int depth, boolean ignoreAncestry,
- boolean dryRun, boolean recordOnly)
+ public native void merge(String path, Revision pegRevision,
+ List<RevisionRange> revisions, String localPath,
+ boolean force, int depth, boolean ignoreAncestry,
+ boolean dryRun, boolean recordOnly)
throws ClientException;
/**