Kaydet (Commit) 9f79f478 authored tarafından Rene Engelhard's avatar Rene Engelhard Kaydeden (comit) Andras Timar

more change in JNI func sigs between Java 6 and 7 workarounds

Change-Id: Ie9cbf1b6dfc79df3a74efd3b9bb31ce33e7be3a0
üst f6ee43f7
...@@ -1431,7 +1431,15 @@ Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getUDTs( ...@@ -1431,7 +1431,15 @@ Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getUDTs(
args[1].l = schemaPattern.toChar() == '%' ? NULL : convertwchar_tToJavaString(t.pEnv,schemaPattern); args[1].l = schemaPattern.toChar() == '%' ? NULL : convertwchar_tToJavaString(t.pEnv,schemaPattern);
args[2].l = convertwchar_tToJavaString(t.pEnv,typeNamePattern); args[2].l = convertwchar_tToJavaString(t.pEnv,typeNamePattern);
jintArray pArray = t.pEnv->NewIntArray(types.getLength()); 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; args[3].l = pArray;
out = t.pEnv->CallObjectMethod( object, mID, args[0].l, args[1].l,args[2].l,args[3].l); out = t.pEnv->CallObjectMethod( object, mID, args[0].l, args[1].l,args[2].l,args[3].l);
......
...@@ -434,7 +434,15 @@ void SAL_CALL java_sql_PreparedStatement::setBytes( sal_Int32 parameterIndex, co ...@@ -434,7 +434,15 @@ void SAL_CALL java_sql_PreparedStatement::setBytes( sal_Int32 parameterIndex, co
static jmethodID mID(NULL); static jmethodID mID(NULL);
obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID); obtainMethodId_throwSQL(t.pEnv, cMethodName,cSignature, mID);
jbyteArray pByteArray = t.pEnv->NewByteArray(x.getLength()); 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->CallVoidMethod( object, mID, parameterIndex,pByteArray);
t.pEnv->DeleteLocalRef(pByteArray); t.pEnv->DeleteLocalRef(pByteArray);
ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); ThrowLoggedSQLException( m_aLogger, t.pEnv, *this );
...@@ -466,7 +474,15 @@ void SAL_CALL java_sql_PreparedStatement::setCharacterStream( sal_Int32 paramete ...@@ -466,7 +474,15 @@ void SAL_CALL java_sql_PreparedStatement::setCharacterStream( sal_Int32 paramete
jvalue args2[3]; jvalue args2[3];
jbyteArray pByteArray = t.pEnv->NewByteArray( actualLength ); 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[0].l = pByteArray;
args2[1].i = 0; args2[1].i = 0;
args2[2].i = actualLength; args2[2].i = actualLength;
...@@ -516,7 +532,15 @@ void SAL_CALL java_sql_PreparedStatement::setBinaryStream( sal_Int32 parameterIn ...@@ -516,7 +532,15 @@ void SAL_CALL java_sql_PreparedStatement::setBinaryStream( sal_Int32 parameterIn
jvalue args2[3]; jvalue args2[3];
jbyteArray pByteArray = t.pEnv->NewByteArray(actualLength); 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[0].l = pByteArray;
args2[1].i = 0; args2[1].i = 0;
args2[2].i = (sal_Int32)actualLength; args2[2].i = (sal_Int32)actualLength;
......
...@@ -665,7 +665,15 @@ void SAL_CALL java_sql_ResultSet::updateBytes( sal_Int32 columnIndex, const ::co ...@@ -665,7 +665,15 @@ void SAL_CALL java_sql_ResultSet::updateBytes( sal_Int32 columnIndex, const ::co
{ {
jbyteArray aArray = t.pEnv->NewByteArray(x.getLength()); 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 // convert parameter
t.pEnv->CallVoidMethod( object, mID,columnIndex,aArray); t.pEnv->CallVoidMethod( object, mID,columnIndex,aArray);
t.pEnv->DeleteLocalRef(aArray); t.pEnv->DeleteLocalRef(aArray);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment