Mercurial > hg > truffle
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) { |