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