private byte readValue(long[] offset) { byte type = dumpBuffer.get(offset[0]++); offset[0] += getValueSize(type); return type; } }
int getValueSize() { return classDump.getHprof().getValueSize(getValueType()); }
void addInstanceSize(ClassDump cls, int tag, long instanceOffset) { if ((tag == HprofHeap.OBJECT_ARRAY_DUMP) || (tag == HprofHeap.PRIMITIVE_ARRAY_DUMP)) { Long sizeLong = (Long) arrayMap.get(cls); long size = 0; HprofByteBuffer dumpBuffer = hprofHeap.dumpBuffer; int idSize = dumpBuffer.getIDSize(); long elementsOffset = instanceOffset + 1 + idSize + 4; if (sizeLong != null) { size = sizeLong.longValue(); } int elements = dumpBuffer.getInt(elementsOffset); int elSize; if (tag == HprofHeap.PRIMITIVE_ARRAY_DUMP) { elSize = hprofHeap.getValueSize(dumpBuffer.get(elementsOffset + 4)); } else { elSize = idSize; } size += (getMinimumInstanceSize() + ArrayDump.HPROF_ARRAY_OVERHEAD + (((long)elements) * elSize)); arrayMap.put((JavaClass)cls, Long.valueOf(size)); } }
public long getSize() { long elementSize = dumpClass.getHprof().getValueSize(getType()); return dumpClass.classDumpSegment.getMinimumInstanceSize() + HPROF_ARRAY_OVERHEAD + (elementSize * getLength()); }
int getConstantPoolSize() { long cpOffset = fileOffset + classDumpSegment.constantPoolSizeOffset; HprofByteBuffer buffer = getHprofBuffer(); int cpRecords = buffer.getShort(cpOffset); HprofHeap heap = getHprof(); cpOffset += 2; for (int i = 0; i < cpRecords; i++) { byte type = buffer.get(cpOffset + 2); int size = heap.getValueSize(type); cpOffset += (2 + 1 + size); } return (int) (cpOffset - (fileOffset + classDumpSegment.constantPoolSizeOffset)); }
int getStaticFiledSize(int staticFieldOffset) { int i; HprofByteBuffer buffer = getHprofBuffer(); int idSize = buffer.getIDSize(); long fieldOffset = fileOffset + staticFieldOffset; int fields = buffer.getShort(fieldOffset); HprofHeap heap = getHprof(); fieldOffset += 2; for (i = 0; i < fields; i++) { byte type = buffer.get(fieldOffset + idSize); int size = heap.getValueSize(type); fieldOffset += (idSize + 1 + size); } return (int) (fieldOffset - staticFieldOffset - fileOffset); }
List<FieldValue> getStaticFieldValues(boolean addClassLoader) { HprofByteBuffer buffer = getHprofBuffer(); long offset = fileOffset + getStaticFieldOffset(); int i; int fields; List<FieldValue> filedsList; HprofHeap heap = getHprof(); fields = buffer.getShort(offset); offset += 2; filedsList = new ArrayList<FieldValue>(fields+(addClassLoader?0:1)); for (i = 0; i < fields; i++) { byte type = buffer.get(offset + classDumpSegment.fieldTypeOffset); int fieldSize = classDumpSegment.fieldSize + heap.getValueSize(type); HprofFieldValue value; if (type == HprofHeap.OBJECT) { value = new HprofFieldObjectValue(this, offset); } else { value = new HprofFieldValue(this, offset); } filedsList.add(value); offset += fieldSize; } if (addClassLoader) { long classLoaderOffset = fileOffset + classDumpSegment.classLoaderIDOffset; filedsList.add(new ClassLoaderFieldValue(this, classLoaderOffset)); } return filedsList; }
public List<Object> getValues() { HprofByteBuffer dumpBuffer = dumpClass.getHprofBuffer(); HprofHeap heap = dumpClass.getHprof(); byte type = getType(); long offset = getArrayStartOffset(); return new PrimitiveArrayLazyList(dumpBuffer, getLength(), offset, heap.getValueSize(type), type); }
void findStaticReferencesFor(long instanceId, List<Value> refs) { int i; HprofByteBuffer buffer = getHprofBuffer(); int idSize = buffer.getIDSize(); long fieldOffset = fileOffset + getStaticFieldOffset(); int fields = buffer.getShort(fieldOffset); List<FieldValue> staticFileds = null; HprofHeap heap = getHprof(); fieldOffset += 2; for (i = 0; i < fields; i++) { byte type = buffer.get(fieldOffset + idSize); int size = heap.getValueSize(type); if ((type == HprofHeap.OBJECT) && (instanceId == buffer.getID(fieldOffset + idSize + 1))) { if (staticFileds == null) { staticFileds = getStaticFieldValues(); } refs.add(staticFileds.get(i)); } fieldOffset += (idSize + 1 + size); } if (instanceId == getClassLoaderId()) { if (staticFileds == null) { staticFileds = getStaticFieldValues(); } refs.add(staticFileds.get(fields)); } }
dataSize += getValueSize(type); size = idSize + 4 + 4 + 1 + (elements * getValueSize(type));
private byte readValue(long[] offset) { byte type = dumpBuffer.get(offset[0]++); offset[0] += getValueSize(type); return type; } }
private byte readValue(long[] offset) { byte type = dumpBuffer.get(offset[0]++); offset[0] += getValueSize(type); return type; } }
int getValueSize() { return classDump.getHprof().getValueSize(getValueType()); }
int getValueSize() { return classDump.getHprof().getValueSize(getValueType()); }
int getConstantPoolSize() { long cpOffset = fileOffset + classDumpSegment.constantPoolSizeOffset; HprofByteBuffer buffer = getHprofBuffer(); int cpRecords = buffer.getShort(cpOffset); HprofHeap heap = getHprof(); cpOffset += 2; for (int i = 0; i < cpRecords; i++) { byte type = buffer.get(cpOffset + 2); int size = heap.getValueSize(type); cpOffset += (2 + 1 + size); } return (int) (cpOffset - (fileOffset + classDumpSegment.constantPoolSizeOffset)); }
public long getSize() { long elementSize = dumpClass.getHprof().getValueSize(getType()); return dumpClass.classDumpSegment.getMinimumInstanceSize() + HPROF_ARRAY_OVERHEAD + (elementSize * getLength()); }
int getConstantPoolSize() { long cpOffset = fileOffset + classDumpSegment.constantPoolSizeOffset; HprofByteBuffer buffer = getHprofBuffer(); int cpRecords = buffer.getShort(cpOffset); HprofHeap heap = getHprof(); cpOffset += 2; for (int i = 0; i < cpRecords; i++) { byte type = buffer.get(cpOffset + 2); int size = heap.getValueSize(type); cpOffset += (2 + 1 + size); } return (int) (cpOffset - (fileOffset + classDumpSegment.constantPoolSizeOffset)); }
public long getSize() { long elementSize = dumpClass.getHprof().getValueSize(getType()); return dumpClass.classDumpSegment.getMinimumInstanceSize() + HPROF_ARRAY_OVERHEAD + (elementSize * getLength()); }
public List /*<String>*/ getValues() { HprofByteBuffer dumpBuffer = dumpClass.getHprofBuffer(); HprofHeap heap = dumpClass.getHprof(); byte type = getType(); long offset = getArrayStartOffset(); return new PrimitiveArrayLazyList(dumpBuffer, getLength(), offset, heap.getValueSize(type), type); }
public List<Object> getValues() { HprofByteBuffer dumpBuffer = dumpClass.getHprofBuffer(); HprofHeap heap = dumpClass.getHprof(); byte type = getType(); long offset = getArrayStartOffset(); return new PrimitiveArrayLazyList(dumpBuffer, getLength(), offset, heap.getValueSize(type), type); }