< prev index next >

src/java.base/share/classes/jdk/internal/jimage/ImageStream.java

Print this page




  55 
  56     ImageStream(byte[] bytes, ByteOrder byteOrder) {
  57         buffer = ByteBuffer.wrap(bytes);
  58         buffer.order(byteOrder);
  59     }
  60 
  61     ImageStream(ByteBuffer buffer) {
  62         this.buffer = buffer;
  63     }
  64 
  65     ImageStream align(int alignment) {
  66         int padding = (getSize() - 1) & ((1 << alignment) - 1);
  67 
  68         for (int i = 0; i < padding; i++) {
  69             put((byte)0);
  70         }
  71 
  72         return this;
  73     }
  74 
  75     private void ensure(int needs) {
  76         assert 0 <= needs : "Negative needs";
  77 
  78         if (needs > buffer.remaining()) {
  79             byte[] bytes = buffer.array();
  80             ByteOrder byteOrder = buffer.order();
  81             int position = buffer.position();
  82             int newSize = needs <= bytes.length ? bytes.length << 1 : position + needs;
  83             buffer = ByteBuffer.allocate(newSize);
  84             buffer.order(byteOrder);
  85             buffer.put(bytes, 0, position);
  86         }
  87     }
  88 
  89     boolean hasByte() {
  90         return buffer.remaining() != 0;
  91     }
  92 
  93     boolean hasBytes(int needs) {
  94         return needs <= buffer.remaining();
  95     }




  55 
  56     ImageStream(byte[] bytes, ByteOrder byteOrder) {
  57         buffer = ByteBuffer.wrap(bytes);
  58         buffer.order(byteOrder);
  59     }
  60 
  61     ImageStream(ByteBuffer buffer) {
  62         this.buffer = buffer;
  63     }
  64 
  65     ImageStream align(int alignment) {
  66         int padding = (getSize() - 1) & ((1 << alignment) - 1);
  67 
  68         for (int i = 0; i < padding; i++) {
  69             put((byte)0);
  70         }
  71 
  72         return this;
  73     }
  74 
  75     void ensure(int needs) {
  76         assert 0 <= needs : "Negative needs";
  77 
  78         if (needs > buffer.remaining()) {
  79             byte[] bytes = buffer.array();
  80             ByteOrder byteOrder = buffer.order();
  81             int position = buffer.position();
  82             int newSize = needs <= bytes.length ? bytes.length << 1 : position + needs;
  83             buffer = ByteBuffer.allocate(newSize);
  84             buffer.order(byteOrder);
  85             buffer.put(bytes, 0, position);
  86         }
  87     }
  88 
  89     boolean hasByte() {
  90         return buffer.remaining() != 0;
  91     }
  92 
  93     boolean hasBytes(int needs) {
  94         return needs <= buffer.remaining();
  95     }


< prev index next >