Exemplo n.º 1
0
void assign(void ** destiny, void ** source)
{
    HeapNode<void*>* resultDestiny = garbageCollector.findNode(destiny);
    if(resultDestiny)
    {
        garbageCollector.decreaseKey(destiny, resultDestiny->pointedBy - 1);
        if(resultDestiny->pointedBy == 0)
        {
            garbageCollector.extractMin();
        }
    }
    HeapNode<void*>* resultSource = garbageCollector.findNode(source);
    if(resultSource)
    {
        garbageCollector.increaseKey(resultSource, 1);
    }
    destiny = source;

}