Lines Matching refs:data

60     private ByteBuffer data;
71 * Creates a new dex that reads from {@code data}. It is an error to modify
72 * {@code data} after using it to create a dex buffer.
74 public Dex(byte[] data) throws IOException {
75 this(ByteBuffer.wrap(data));
78 private Dex(ByteBuffer data) throws IOException {
79 this.data = data;
80 this.data.order(ByteOrder.LITTLE_ENDIAN);
88 this.data = ByteBuffer.wrap(new byte[byteCount]);
89 this.data.order(ByteOrder.LITTLE_ENDIAN);
125 public static Dex create(ByteBuffer data) throws IOException {
126 data.order(ByteOrder.LITTLE_ENDIAN);
129 if (data.get(0) == 'd'
130 && data.get(1) == 'e'
131 && data.get(2) == 'y'
132 && data.get(3) == '\n') {
133 data.position(8);
134 int offset = data.getInt();
135 int length = data.getInt();
136 data.position(offset);
137 data.limit(offset + length);
138 data = data.slice();
141 return new Dex(data);
154 this.data = ByteBuffer.wrap(bytesOut.toByteArray());
155 this.data.order(ByteOrder.LITTLE_ENDIAN);
167 ByteBuffer data = this.data.duplicate(); // positioned ByteBuffers aren't thread safe
168 data.clear();
169 while (data.hasRemaining()) {
170 int count = Math.min(buffer.length, data.remaining());
171 data.get(buffer, 0, count);
187 if (position < 0 || position >= data.capacity()) {
189 + " length=" + data.capacity());
191 ByteBuffer sectionData = data.duplicate();
194 sectionData.limit(data.capacity());
203 ByteBuffer sectionData = data.duplicate();
213 return data.capacity();
224 ByteBuffer data = this.data.duplicate(); // positioned ByteBuffers aren't thread safe
225 byte[] result = new byte[data.capacity()];
226 data.position(0);
227 data.get(result);
295 ByteBuffer data = this.data.duplicate(); // positioned ByteBuffers aren't thread safe
296 data.limit(data.capacity());
297 data.position(SIGNATURE_OFFSET + SIGNATURE_SIZE);
298 while (data.hasRemaining()) {
299 int count = Math.min(buffer.length, data.remaining());
300 data.get(buffer, 0, count);
312 ByteBuffer data = this.data.duplicate(); // positioned ByteBuffers aren't thread safe
313 data.limit(data.capacity());
314 data.position(CHECKSUM_OFFSET + CHECKSUM_SIZE);
315 while (data.hasRemaining()) {
316 int count = Math.min(buffer.length, data.remaining());
317 data.get(buffer, 0, count);
341 return data.getInt(position); // nameIndex
381 return data.getShort(position) & 0xFFFF; // typeIndex
391 return data.getShort(position) & 0xFFFF; // declaringClassIndex
403 return data.getInt(position); // nameIndex
414 int protoIndex = data.getShort(position) & 0xFFFF;
419 int parametersOffset = data.getInt(position);
424 int size = data.getInt(position);
431 types[i] = data.getShort(position);
445 int protoIndex = data.getShort(position) & 0xFFFF;
449 return data.getInt(position); // returnTypeIndex
459 return data.getInt(position);
468 return data.getInt(position);
482 return data.getInt(position);
495 int interfacesOffset = data.getInt(position);
500 int size = data.getInt(position);
507 types[i] = data.getShort(position);
515 private final ByteBuffer data;
518 private Section(String name, ByteBuffer data) {
520 this.data = data;
521 this.initialPosition = data.position();
525 return data.position();
529 return data.getInt();
533 return data.getShort();
541 return data.get();
546 data.get(result);
586 int savedPosition = data.position();
587 int savedLimit = data.limit();
588 data.position(offset);
589 data.limit(data.capacity());
601 data.position(savedPosition);
602 data.limit(savedLimit);
662 Section triesSection = open(data.position());
675 int baseOffset = data.position();
679 int offset = data.position() - baseOffset;
760 int end = data.position();
762 data.position(start);
763 data.get(result);
769 int start = data.position();
775 int start = data.position();
784 data.position(data.position() + count);
791 data.position((data.position() + 3) & ~3);
798 while ((data.position() & 3) != 0) {
799 data.put((byte) 0);
804 if ((data.position() & 3) != 0) {
810 this.data.put(bytes);
814 data.put((byte) b);
818 data.putShort(i);
836 data.putInt(i);
843 throw new DexException("Section limit " + data.limit() + " exceeded by " + name);
851 throw new DexException("Section limit " + data.limit() + " exceeded by " + name);
879 return data.remaining();
886 return data.position() - initialPosition;