changeset 22340:bb3c03f2442d

Layout: add polymorphic unboxing flag
author Andreas Woess <andreas.woess@oracle.com>
date Tue, 03 Nov 2015 14:09:13 +0100
parents 559087369317
children 4df3d8fd6cfd ed3b78bbfa81
files truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Layout.java
diffstat 1 files changed, 13 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Layout.java	Fri Oct 30 20:09:46 2015 +0100
+++ b/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Layout.java	Tue Nov 03 14:09:13 2015 +0100
@@ -121,6 +121,7 @@
      */
     public static final class Builder {
         private EnumSet<ImplicitCast> allowedImplicitCasts;
+        private boolean polymorphicUnboxing;
 
         /**
          * Create a new layout builder.
@@ -155,9 +156,21 @@
             this.allowedImplicitCasts.add(allowedImplicitCast);
             return this;
         }
+
+        /**
+         * If {@code true}, try to keep properties with polymorphic primitive types unboxed.
+         */
+        public Builder setPolymorphicUnboxing(boolean polymorphicUnboxing) {
+            this.polymorphicUnboxing = polymorphicUnboxing;
+            return this;
+        }
     }
 
     protected static EnumSet<ImplicitCast> getAllowedImplicitCasts(Builder builder) {
         return builder.allowedImplicitCasts;
     }
+
+    protected static boolean getPolymorphicUnboxing(Builder builder) {
+        return builder.polymorphicUnboxing;
+    }
 }