From d639d9fd7654550dd4034dc5928d139e98cc9e63 Mon Sep 17 00:00:00 2001 From: clay_shooter Date: Fri, 25 Dec 2009 19:11:55 +0000 Subject: [PATCH] 2819445 SafeArray.fromLongArray fails when using VariantLongInt --- docs/ReleaseNotes.html | 4 ++++ jni/SafeArray.cpp | 3 ++- .../test/safearray/SafeArrayBasicTest.java | Bin 17930 -> 20648 bytes 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html index e382ef6..e77f3df 100644 --- a/docs/ReleaseNotes.html +++ b/docs/ReleaseNotes.html @@ -16,6 +16,10 @@ Bugs + + 2819445 + SafeArray.fromLongArray fails when using VariantLongInt (M3) + 2847577 SafeArray#setString(*) incorrectly handles unicode strings (M3) diff --git a/jni/SafeArray.cpp b/jni/SafeArray.cpp index 4fa0c65..29077a3 100644 --- a/jni/SafeArray.cpp +++ b/jni/SafeArray.cpp @@ -483,7 +483,8 @@ JNIEXPORT void JNICALL Java_com_jacob_com_SafeArray_fromLongArray } else if (vt == VT_I8) { void *pData; SafeArrayAccessData(psa, &pData); - memcpy(pData, arrayElements, len*sizeof(long)); + // VT_I8 is actually a LONGLONG and not a long in length SF 2819445 + memcpy(pData, arrayElements, len*sizeof(LONGLONG)); SafeArrayUnaccessData(psa); } else { ThrowComFail(env, "safearray cannot be assigned from long", -1); diff --git a/unittest/com/jacob/test/safearray/SafeArrayBasicTest.java b/unittest/com/jacob/test/safearray/SafeArrayBasicTest.java index 1d4fe10a0f7eb7718326001481c8fe6a25d4d218..a41f220efbdb641ea6978ffa75affcf01da080be 100644 GIT binary patch delta 434 zcmeC`VO+70al=-j$?JLeCa*W)+q_jsh>@F@fs26?0w;f95#`lm$YDrj$YV%nC}GH$ zyg*ZT@^|44ldq~tP5#Itf+pJ_YdHBo8{g#lY)jCMW>;c?>B) z(<&GgCVx=Vo_v$nYVvG$iN)(h87I#ck^(t|*9WXNoxu~Rwq)}bA!bHt6d?v3h5>Nm z=Jld-jIe;3d{*oa;c(jgQ~U(e~5AZ^?(KyQ^YB!L2C@)@zWl1O}Fd;~O1P!9lF CgK?q& delta 55 zcmZ3nkg=