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 2014/06/18 09:38:30 UTC

svn commit: r1603363 - in /subversion/trunk/subversion/bindings/javahl/native: SVNClient.cpp SVNClient.h org_apache_subversion_javahl_SVNClient.cpp

Author: brane
Date: Wed Jun 18 07:38:29 2014
New Revision: 1603363

URL: http://svn.apache.org/r1603363
Log:
Avoid a 64-to-32-bit conversion warning in JavaHL.

[in subversion/bindings/javahl]
* native/SVNClient.h, native/SVNClient.cpp (SVNClient::logMessages):
   Change the type of the 'limit' parameter from long to int,
   to match the prototype of svn_client_log5.
* native/org_apache_subversion_javahl_SVNClient.cpp
  (Java_org_apache_subversion_javahl_SVNClient_logMesages):
   Verify that the jlimit argument is within the range of the C int
   type, and cast it accordingly in the call to SVNClient::logMessages.

Modified:
    subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp
    subversion/trunk/subversion/bindings/javahl/native/SVNClient.h
    subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp

Modified: subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp?rev=1603363&r1=1603362&r2=1603363&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp Wed Jun 18 07:38:29 2014
@@ -258,7 +258,7 @@ void SVNClient::logMessages(const char *
                             std::vector<RevisionRange> &logRanges,
                             bool stopOnCopy, bool discoverPaths,
                             bool includeMergedRevisions, StringArray &revProps,
-                            long limit, LogMessageCallback *callback)
+                            int limit, LogMessageCallback *callback)
 {
     SVN::Pool subPool(pool);
 

Modified: subversion/trunk/subversion/bindings/javahl/native/SVNClient.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/SVNClient.h?rev=1603363&r1=1603362&r2=1603363&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/SVNClient.h (original)
+++ subversion/trunk/subversion/bindings/javahl/native/SVNClient.h Wed Jun 18 07:38:29 2014
@@ -159,7 +159,7 @@ class SVNClient :public SVNBase
                    std::vector<RevisionRange> &ranges, bool stopOnCopy,
                    bool discoverPaths, bool includeMergedRevisions,
                    StringArray &revProps,
-                   long limit, LogMessageCallback *callback);
+                   int limit, LogMessageCallback *callback);
   jobject getVersionExtended(bool verbose);
   jstring getAdminDirectoryName();
   jboolean isAdminDirectory(const char *name);

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=1603363&r1=1603362&r2=1603363&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 Jun 18 07:38:29 2014
@@ -316,6 +316,14 @@ Java_org_apache_subversion_javahl_SVNCli
  jobject jlogMessageCallback)
 {
   JNIEntry(SVNClient, logMessages);
+
+  if (jlong(int(jlimit)) != jlimit)
+    {
+      JNIUtil::raiseThrowable("java/lang/IllegalArgumentException",
+                              "The value of 'limit' is too large");
+      return;
+    }
+
   SVNClient *cl = SVNClient::getCppObject(jthis);
   if (cl == NULL)
     {
@@ -357,7 +365,7 @@ Java_org_apache_subversion_javahl_SVNCli
   cl->logMessages(path, pegRevision, revisionRanges,
                   jstopOnCopy ? true: false, jdisoverPaths ? true : false,
                   jincludeMergedRevisions ? true : false,
-                  revProps, static_cast<long>(jlimit), &callback);
+                  revProps, int(jlimit), &callback);
 }
 
 JNIEXPORT jlong JNICALL