Mercurial > hg > truffle
diff truffle/com.oracle.truffle.api.interop.java/src/com/oracle/truffle/api/interop/java/JavaInterop.java @ 22529:2643b968c0c6
Send UNBOX message when a primitive type is requested for a TruffleObject value
author | Jaroslav Tulach <jaroslav.tulach@oracle.com> |
---|---|
date | Wed, 06 Jan 2016 10:59:58 +0100 |
parents | 6ab540203853 |
children |
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.api.interop.java/src/com/oracle/truffle/api/interop/java/JavaInterop.java Wed Dec 30 18:07:19 2015 +0100 +++ b/truffle/com.oracle.truffle.api.interop.java/src/com/oracle/truffle/api/interop/java/JavaInterop.java Wed Jan 06 10:59:58 2016 +0100 @@ -424,9 +424,15 @@ return toPrimitive(attr, null) != null; } - static Object toPrimitive(Object attr, Class<?> requestedType) { - if (attr instanceof TruffleObject) { - return null; + static Object toPrimitive(Object value, Class<?> requestedType) { + Object attr; + if (value instanceof TruffleObject) { + if (!Boolean.TRUE.equals(message(Message.IS_BOXED, value))) { + return null; + } + attr = message(Message.UNBOX, value); + } else { + attr = value; } if (attr instanceof Number) { if (requestedType == null) {