diff options
author | Rene Engelhard <rene@debian.org> | 2015-06-29 23:02:11 +0200 |
---|---|---|
committer | Rene Engelhard <rene@debian.org> | 2015-06-30 05:46:27 +0200 |
commit | fa5822ce69bfc80ac8b1c5caa98de7e5c7ccf568 (patch) | |
tree | 98863934c30336f1fa24ad1208659c6c5267899e /connectivity/source | |
parent | 571f0abb95e1d4aa1cb7cad20b783b17ba7ac99d (diff) |
more change in JNI func sigs between Java 6 and 7 workarounds
Change-Id: Ie9cbf1b6dfc79df3a74efd3b9bb31ce33e7be3a0
Diffstat (limited to 'connectivity/source')
-rw-r--r-- | connectivity/source/drivers/jdbc/DatabaseMetaData.cxx | 10 | ||||
-rw-r--r-- | connectivity/source/drivers/jdbc/PreparedStatement.cxx | 30 | ||||
-rw-r--r-- | connectivity/source/drivers/jdbc/ResultSet.cxx | 10 |
3 files changed, 45 insertions, 5 deletions
diff --git a/connectivity/source/drivers/jdbc/DatabaseMetaData.cxx b/connectivity/source/drivers/jdbc/DatabaseMetaData.cxx index feadbcec5706..8ad8635b6104 100644 --- a/connectivity/source/drivers/jdbc/DatabaseMetaData.cxx +++ b/connectivity/source/drivers/jdbc/DatabaseMetaData.cxx @@ -1431,7 +1431,15 @@ Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getUDTs( args[1].l = schemaPattern.toChar() == '%' ? NULL : convertwchar_tToJavaString(t.pEnv,schemaPattern); args[2].l = convertwchar_tToJavaString(t.pEnv,typeNamePattern); jintArray pArray = t.pEnv->NewIntArray(types.getLength()); - t.pEnv->SetIntArrayRegion(pArray,0,types.getLength(),reinterpret_cast<jint const *>(types.getConstArray())); + jint * typesData = reinterpret_cast<jint *>( + const_cast<sal_Int32 *>(types.getConstArray())); + // 4th param of Set*ArrayRegion changed from pointer to non-const to + // pointer to const between <http://docs.oracle.com/javase/6/docs/ + // technotes/guides/jni/spec/functions.html#wp22933> and + // <http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/ + // functions.html#wp22933>; work around that difference in a way + // that doesn't trigger loplugin:redundantcast + t.pEnv->SetIntArrayRegion(pArray,0,types.getLength(),typesData); args[3].l = pArray; out = t.pEnv->CallObjectMethod( object, mID, args[0].l, args[1].l,args[2].l,args[3].l); diff --git a/connectivity/source/drivers/jdbc/PreparedStatement.cxx b/connectivity/source/drivers/jdbc/PreparedStatement.cxx index a132f1a96335..dd8f7d27a32b 100644 --- a/connectivity/source/drivers/jdbc/PreparedStatement.cxx +++ b/connectivity/source/drivers/jdbc/PreparedStatement.cxx @@ -434,7 +434,15 @@ void SAL_CALL java_sql_PreparedStatement::setBytes( sal_Int32 parameterIndex, co static jmethodID mID(NULL); obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID); jbyteArray pByteArray = t.pEnv->NewByteArray(x.getLength()); - t.pEnv->SetByteArrayRegion(pByteArray,0,x.getLength(),x.getConstArray()); + jbyte * xData = reinterpret_cast<jbyte *>( + const_cast<sal_Int8 *>(x.getConstArray())); + // 4th param of Set*ArrayRegion changed from pointer to non-const to + // pointer to const between <http://docs.oracle.com/javase/6/docs/ + // technotes/guides/jni/spec/functions.html#wp22933> and + // <http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/ + // functions.html#wp22933>; work around that difference in a way + // that doesn't trigger loplugin:redundantcast + t.pEnv->SetByteArrayRegion(pByteArray,0,x.getLength(),xData); t.pEnv->CallVoidMethod( object, mID, parameterIndex,pByteArray); t.pEnv->DeleteLocalRef(pByteArray); ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); @@ -466,7 +474,15 @@ void SAL_CALL java_sql_PreparedStatement::setCharacterStream( sal_Int32 paramete jvalue args2[3]; jbyteArray pByteArray = t.pEnv->NewByteArray( actualLength ); - t.pEnv->SetByteArrayRegion(pByteArray,0,actualLength,aSeq.getConstArray()); + jbyte * aSeqData = reinterpret_cast<jbyte *>( + const_cast<sal_Int8 *>(aSeq.getConstArray())); + // 4th param of Set*ArrayRegion changed from pointer to non-const to + // pointer to const between <http://docs.oracle.com/javase/6/docs/ + // technotes/guides/jni/spec/functions.html#wp22933> and + // <http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/ + // functions.html#wp22933>; work around that difference in a way + // that doesn't trigger loplugin:redundantcast + t.pEnv->SetByteArrayRegion(pByteArray,0,actualLength,aSeqData); args2[0].l = pByteArray; args2[1].i = 0; args2[2].i = actualLength; @@ -516,7 +532,15 @@ void SAL_CALL java_sql_PreparedStatement::setBinaryStream( sal_Int32 parameterIn jvalue args2[3]; jbyteArray pByteArray = t.pEnv->NewByteArray(actualLength); - t.pEnv->SetByteArrayRegion(pByteArray,0,actualLength,aSeq.getConstArray()); + jbyte * aSeqData = reinterpret_cast<jbyte *>( + const_cast<sal_Int8 *>(aSeq.getConstArray())); + // 4th param of Set*ArrayRegion changed from pointer to non-const to + // pointer to const between <http://docs.oracle.com/javase/6/docs/ + // technotes/guides/jni/spec/functions.html#wp22933> and + // <http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/ + // functions.html#wp22933>; work around that difference in a way + // that doesn't trigger loplugin:redundantcast + t.pEnv->SetByteArrayRegion(pByteArray,0,actualLength,aSeqData); args2[0].l = pByteArray; args2[1].i = 0; args2[2].i = (sal_Int32)actualLength; diff --git a/connectivity/source/drivers/jdbc/ResultSet.cxx b/connectivity/source/drivers/jdbc/ResultSet.cxx index 0ad6bb207f3e..f854bab62ded 100644 --- a/connectivity/source/drivers/jdbc/ResultSet.cxx +++ b/connectivity/source/drivers/jdbc/ResultSet.cxx @@ -665,7 +665,15 @@ void SAL_CALL java_sql_ResultSet::updateBytes( sal_Int32 columnIndex, const ::co { jbyteArray aArray = t.pEnv->NewByteArray(x.getLength()); - t.pEnv->SetByteArrayRegion(aArray,0,x.getLength(),x.getConstArray()); + jbyte * xData = reinterpret_cast<jbyte *>( + const_cast<sal_Int8 *>(x.getConstArray())); + // 4th param of Set*ArrayRegion changed from pointer to non-const to + // pointer to const between <http://docs.oracle.com/javase/6/docs/ + // technotes/guides/jni/spec/functions.html#wp22933> and + // <http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/ + // functions.html#wp22933>; work around that difference in a way + // that doesn't trigger loplugin:redundantcast + t.pEnv->SetByteArrayRegion(aArray,0,x.getLength(),xData); // convert parameter t.pEnv->CallVoidMethod( object, mID,columnIndex,aArray); t.pEnv->DeleteLocalRef(aArray); |