use of com.ibm.j9ddr.vm29.pointer.VoidPointer in project openj9 by eclipse.
the class GCCardTable method cardAddrToHeapAddr.
public VoidPointer cardAddrToHeapAddr(U8Pointer cardAddr) {
/* Check passed card address is within the card table */
// Assert_MM_true((void *)cardAddr >= getCardTableStart());
// Assert_MM_true((void *)cardAddr < _cardTableMemory->getHeapTop());
UDATA index = UDATA.cast(cardAddr).sub(UDATA.cast(_cardTableStart));
UDATA delta = index.leftShift(CARD_SIZE_SHIFT);
return _heapBase.addOffset(delta);
}
use of com.ibm.j9ddr.vm29.pointer.VoidPointer in project openj9 by eclipse.
the class GCClassIterator method nextAddress.
public VoidPointer nextAddress() {
if (hasNext()) {
switch(state) {
case state_statics:
return staticsIterator.nextAddress();
case state_constant_pool:
return constantPoolSlotIterator.nextAddress();
case state_slots:
if (clazz != null) {
VoidPointer ea = null;
try {
ea = VoidPointer.cast(clazz.classObjectEA());
} catch (CorruptDataException e) {
// can try to recover from this
raiseCorruptDataEvent("Error fetching the class object", e, false);
}
clazz = null;
return ea;
}
}
}
throw new NoSuchElementException("There are no more items available through this iterator");
}
use of com.ibm.j9ddr.vm29.pointer.VoidPointer in project openj9 by eclipse.
the class GCClassSuperclassesIterator method nextAddress.
public VoidPointer nextAddress() {
if (hasNext()) {
VoidPointer next = VoidPointer.cast(superclasses.add(index));
index = index.add(1);
return next;
} else {
throw new NoSuchElementException("There are no more items available through this iterator");
}
}
use of com.ibm.j9ddr.vm29.pointer.VoidPointer in project openj9 by eclipse.
the class GCVMClassSlotIterator method nextAddress.
public VoidPointer nextAddress() {
if (hasNext()) {
VoidPointer next = VoidPointer.cast(scanPtr);
scanPtr = scanPtr.add(1);
return next;
} else {
throw new NoSuchElementException("There are no more items available through this iterator");
}
}
use of com.ibm.j9ddr.vm29.pointer.VoidPointer in project openj9 by eclipse.
the class MMSublistSlotIterator method next.
public AbstractPointer next() {
if (hasNext()) {
VoidPointer currentScanPtr = VoidPointer.cast(scanPtr);
scanPtr = scanPtr.add(1);
return currentScanPtr;
} else {
throw new NoSuchElementException("There are no more items available through this iterator");
}
}
Aggregations