#include "slices_evt.h" int sliceSplitEvt(slices_evt_t *slicesEvt, slice_t *initialSlice, address_t splitAt, sliceStatus_t statusBefore, sliceStatus_t statusAt, sliceStatus_t statusAfter) { int res; res=sliceSplit(slicesEvt->data, initialSlice, splitAt, statusBefore, statusAt, statusAfter); if ( slicesEvt->eventListener != NULL ) { //FIXME : this could be dereference a NULL pointer. Implement a real listener system with a thread-safe FIFO switch(res) { case 3: slicesEvt->eventListener(slicesEvt, initialSlice->next->next); case 2: slicesEvt->eventListener(slicesEvt, initialSlice->next); case 1: slicesEvt->eventListener(slicesEvt, initialSlice); break; default: // No events on split errors break; } } return res; }