Skip to content

Commit 35acd04

Browse files
author
lwahonen
committed
Writing a callback fails, as it tries to create a SAFEARRAY with a zeroed pointer
1 parent 2856d95 commit 35acd04

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

test/com/sun/jna/CallbacksTest.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838

3939
import com.sun.jna.Callback.UncaughtExceptionHandler;
4040
import com.sun.jna.CallbacksTest.TestLibrary.CbCallback;
41+
import com.sun.jna.platform.win32.OaIdl;
4142
import com.sun.jna.ptr.IntByReference;
4243
import com.sun.jna.ptr.PointerByReference;
4344
import com.sun.jna.win32.W32APIOptions;
@@ -1565,6 +1566,31 @@ public void invoke() { }
15651566
}
15661567
}
15671568

1569+
public void testWriteCallback() {
1570+
vTable vtable=new vTable();
1571+
vtable.callback=new vTable.functionpointer() {
1572+
@Override
1573+
public int callback(OaIdl.SAFEARRAY runtimeId) {
1574+
return 0;
1575+
}
1576+
};
1577+
vtable.write();
1578+
}
1579+
1580+
public static class vTable extends Structure {
1581+
public interface functionpointer extends Callback {
1582+
int callback(OaIdl.SAFEARRAY runtimeId);
1583+
}
1584+
1585+
public functionpointer callback;
1586+
1587+
@Override
1588+
protected List<String> getFieldOrder() {
1589+
return Arrays.asList(new String[]{"callback"});
1590+
1591+
}
1592+
}
1593+
15681594
public static void main(java.lang.String[] argList) {
15691595
junit.textui.TestRunner.run(CallbacksTest.class);
15701596
}

0 commit comments

Comments
 (0)