1 package jdk.internal.nicl.types;
   2 
   3 import jdk.internal.nicl.Platform;
   4 
   5 public class Pointer implements Type {
   6     Type pointee;
   7 
   8     public Pointer(Type pointee) {
   9         this.pointee = pointee;
  10     }
  11 
  12     public Type getPointeeType() {
  13         return pointee;
  14     }
  15 
  16     @Override
  17     public long getSize() {
  18         return Platform.getInstance().getABI().definedSize('p');
  19     }
  20 
  21     @Override
  22     public int hashCode() {
  23         return 0x80000000 | pointee.hashCode();
  24     }
  25 
  26     @Override
  27     public boolean equals(Object o) {
  28         if (!(o instanceof jdk.internal.nicl.types.Pointer)) {
  29             return false;
  30         }
  31         jdk.internal.nicl.types.Pointer other = (jdk.internal.nicl.types.Pointer) o;
  32 
  33         if (pointee == null) {
  34             return other.pointee == null;
  35         }
  36 
  37         return pointee.equals(other.pointee);
  38     }
  39 
  40     @Override
  41     public String toString() {
  42         return (pointee == null) ? "p" : "p:" + pointee.toString();
  43     }
  44 }
--- EOF ---