void _php_ibase_free_event(ibase_event *event) /* {{{ */ { unsigned short i; event->state = DEAD; if (event->link != NULL) { ibase_event **node; if (event->link->handle != NULL && isc_cancel_events(IB_STATUS, &event->link->handle, &event->event_id)) { _php_ibase_error(); } /* delete this event from the link struct */ for (node = &event->link->event_head; *node != event; node = &(*node)->event_next); *node = event->event_next; } if (Z_TYPE(event->callback) != IS_UNDEF) { zval_dtor(&event->callback); ZVAL_UNDEF(&event->callback); _php_ibase_event_free(event->event_buffer,event->result_buffer); for (i = 0; i < event->event_count; ++i) { efree(event->events[i]); } efree(event->events); } }
ISC_STATUS API_ROUTINE gds__cancel_events(ISC_STATUS * status_vector, FB_API_HANDLE* db_handle, SLONG * event_id) { return isc_cancel_events(status_vector, db_handle, event_id); }