309 } else if (type == Short.TYPE) {
310 UNSAFE.putShort(object, offset, (short) value);
311 } else if (type == Character.TYPE) {
312 UNSAFE.putChar(object, offset, (char) value);
313 } else if (type == Byte.TYPE) {
314 UNSAFE.putByte(object, offset, (byte) value);
315 } else {
316 throw GraalError.shouldNotReachHere();
317 }
318 }
319
320 @Override
321 public String toString() {
322 StringBuilder sb = new StringBuilder(getClass().getSimpleName()).append('[');
323 appendFields(sb);
324 return sb.append(']').toString();
325 }
326
327 public void appendFields(StringBuilder sb) {
328 for (int i = 0; i < offsets.length; i++) {
329 sb.append(i == 0 ? "" : ", ").append(getName(i)).append('@').append(offsets[i]);
330 }
331 }
332
333 public boolean getBoolean(Object n, int i) {
334 assert types[i] == boolean.class;
335 return UNSAFE.getBoolean(n, offsets[i]);
336 }
337
338 public byte getByte(Object n, int i) {
339 assert types[i] == byte.class;
340 return UNSAFE.getByte(n, offsets[i]);
341 }
342
343 public short getShort(Object n, int i) {
344 assert types[i] == short.class;
345 return UNSAFE.getShort(n, offsets[i]);
346 }
347
348 public char getChar(Object n, int i) {
349 assert types[i] == char.class;
|
309 } else if (type == Short.TYPE) {
310 UNSAFE.putShort(object, offset, (short) value);
311 } else if (type == Character.TYPE) {
312 UNSAFE.putChar(object, offset, (char) value);
313 } else if (type == Byte.TYPE) {
314 UNSAFE.putByte(object, offset, (byte) value);
315 } else {
316 throw GraalError.shouldNotReachHere();
317 }
318 }
319
320 @Override
321 public String toString() {
322 StringBuilder sb = new StringBuilder(getClass().getSimpleName()).append('[');
323 appendFields(sb);
324 return sb.append(']').toString();
325 }
326
327 public void appendFields(StringBuilder sb) {
328 for (int i = 0; i < offsets.length; i++) {
329 sb.append(i == 0 ? "" : ", ").append(getDeclaringClass(i).getSimpleName()).append('.').append(getName(i)).append('@').append(offsets[i]);
330 }
331 }
332
333 public boolean getBoolean(Object n, int i) {
334 assert types[i] == boolean.class;
335 return UNSAFE.getBoolean(n, offsets[i]);
336 }
337
338 public byte getByte(Object n, int i) {
339 assert types[i] == byte.class;
340 return UNSAFE.getByte(n, offsets[i]);
341 }
342
343 public short getShort(Object n, int i) {
344 assert types[i] == short.class;
345 return UNSAFE.getShort(n, offsets[i]);
346 }
347
348 public char getChar(Object n, int i) {
349 assert types[i] == char.class;
|