comparison graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeUtil.java @ 19974:a0971187a38a

Truffle: always check type in UnsafeNodeField
author Andreas Woess <andreas.woess@oracle.com>
date Fri, 20 Mar 2015 15:59:35 +0100
parents f682b9e6ca07
children 5b7db8941fd7
comparison
equal deleted inserted replaced
19973:f7b3b0c5c3e5 19974:a0971187a38a
153 super(kind, field); 153 super(kind, field);
154 } 154 }
155 155
156 @Override 156 @Override
157 public void putObject(Node receiver, Object value) { 157 public void putObject(Node receiver, Object value) {
158 assert !type.isPrimitive() && value == null || type.isInstance(value); 158 if (!type.isPrimitive() && value == null || type.isInstance(value)) {
159 unsafe.putObject(receiver, offset, value); 159 unsafe.putObject(receiver, offset, value);
160 } else {
161 throw new IllegalArgumentException();
162 }
160 } 163 }
161 164
162 @Override 165 @Override
163 public Object getObject(Node receiver) { 166 public Object getObject(Node receiver) {
164 assert !type.isPrimitive(); 167 if (!type.isPrimitive()) {
165 return unsafe.getObject(receiver, offset); 168 return unsafe.getObject(receiver, offset);
169 } else {
170 throw new IllegalArgumentException();
171 }
166 } 172 }
167 173
168 @Override 174 @Override
169 public Object loadValue(Node node) { 175 public Object loadValue(Node node) {
170 if (type == boolean.class) { 176 if (type == boolean.class) {