Beispiel #1
0
void VMEvent::remove_event_request(VMEvent *ep)
{

  VMEvent::Raw eph = Universe::vmevent_request_head();
  VMEvent::Raw epPrev;

  if (ep->is_null()) {
    return;
  }
  if (ep->equals(&eph)) {
    // remove head of list
    *Universe::vmevent_request_head() = eph().next();
    return;
  }
  epPrev = eph;
  eph = eph().next();
  while (eph.not_null()) {
    if (ep->equals(&eph)) {
      VMEvent::Raw epnext = eph().next();
      epPrev().set_next(&epnext);
      return;
    }
    epPrev = eph;
    eph = eph().next();
  }
}