summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/Variant.java
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/Variant.java')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/Variant.java4
1 files changed, 3 insertions, 1 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/Variant.java b/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/Variant.java
index bee729e9ac..1cb44d4bbd 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/Variant.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/Variant.java
@@ -887,7 +887,9 @@ public void setByRef(float val) {
* @since 2.1
*/
public void setByRef(long /*int*/ val) {
- if ((type & COM.VT_BYREF) == 0 || (type & COM.VT_I4) == 0) {
+ if ((type & COM.VT_BYREF) == 0
+ || (OS.PTR_SIZEOF == 4 && (type & COM.VT_I4) == 0)
+ || (OS.PTR_SIZEOF == 8 && (type & COM.VT_I8) == 0)) {
OLE.error(OLE.ERROR_CANNOT_CHANGE_VARIANT_TYPE);
}
COM.MoveMemory(byRefPtr, new long /*int*/[]{val}, OS.PTR_SIZEOF);