From 759d6bddb616278a13713376c4ed82422e655892 Mon Sep 17 00:00:00 2001 From: Charles Oliver Nutter Date: Tue, 21 Apr 2020 16:19:37 -0500 Subject: [PATCH] Convert int to boolean like C does (nonzero is true) Fixes #200 --- src/main/java/jnr/ffi/provider/jffi/NumberUtil.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/jnr/ffi/provider/jffi/NumberUtil.java b/src/main/java/jnr/ffi/provider/jffi/NumberUtil.java index 3ca02c5..89bdb8f 100644 --- a/src/main/java/jnr/ffi/provider/jffi/NumberUtil.java +++ b/src/main/java/jnr/ffi/provider/jffi/NumberUtil.java @@ -158,9 +158,10 @@ public final class NumberUtil { mv.i2c(); } else if (boolean.class == to) { - // Ensure only 0x0 and 0x1 values are used for boolean - mv.iconst_1(); - mv.iand(); + // allow all non-zero values to be treated as true + mv.i2l(); + mv.lconst_0(); + mv.lcmp(); } } } -- 2.26.2