Search in sources :

Example 1 with HeapSlot

use of cz.cuni.mff.d3s.trupple.language.runtime.heap.HeapSlot in project TrufflePascal by Aspect26.

the class StrAllocNode method strAlloc.

@Specialization
PointerValue strAlloc(long size) {
    PCharValue pchar = new PCharValue(size);
    HeapSlot heapSlot = PascalHeap.getInstance().allocateNewObject(pchar);
    PointerValue pointer = new PointerValue(PCharDesriptor.getInstance());
    pointer.setHeapSlot(heapSlot);
    return pointer;
}
Also used : PointerValue(cz.cuni.mff.d3s.trupple.language.runtime.customvalues.PointerValue) HeapSlot(cz.cuni.mff.d3s.trupple.language.runtime.heap.HeapSlot) PCharValue(cz.cuni.mff.d3s.trupple.language.runtime.customvalues.PCharValue) Specialization(com.oracle.truffle.api.dsl.Specialization)

Example 2 with HeapSlot

use of cz.cuni.mff.d3s.trupple.language.runtime.heap.HeapSlot in project TrufflePascal by Aspect26.

the class NewBuiltinNode method allocate.

@Specialization
void allocate(PointerValue pointerValue) {
    Object newObject = pointerValue.getType().getDefaultValue();
    HeapSlot heapSlot = PascalHeap.getInstance().allocateNewObject(newObject);
    pointerValue.setHeapSlot(heapSlot);
}
Also used : HeapSlot(cz.cuni.mff.d3s.trupple.language.runtime.heap.HeapSlot) Specialization(com.oracle.truffle.api.dsl.Specialization)

Aggregations

Specialization (com.oracle.truffle.api.dsl.Specialization)2 HeapSlot (cz.cuni.mff.d3s.trupple.language.runtime.heap.HeapSlot)2 PCharValue (cz.cuni.mff.d3s.trupple.language.runtime.customvalues.PCharValue)1 PointerValue (cz.cuni.mff.d3s.trupple.language.runtime.customvalues.PointerValue)1