/* release memory consumed by the contents of a resource. NOTE : the memory of the resource entry itself is not released(that is released by one or more calls to unload_resource). */ static __bool _free_resource( F8_RESOURCE * res ) { ITEMMAP * imap = res->pItems; if(!imap){ return __true; } _free_items(imap); delete res->pItems; res->pItems = 0; return __true; }
static void _process_que_item(T _this_, item_ *item ) { Table_T items = _this_->items; if (item == NULL) { return; } switch (item->type) { case REG: OE_TLOG(0, "Oed_Dispatcher _process_que_item REG\n"); //i18n int rc = _add_template(_this_, item); //schedule timeout _watch_for_timeout(item, _this_->net_obj); break; case UNREG: _remove_item(items, item, false); break; case PROCESS: OE_TLOG(0, "Oed_Dispatcher _process_que_item PROCESS\n"); //i18n //run match tests _process(items, item); if (item->free_alloc) { _free_object(item->object); } Mem_free(item, __FILE__, __LINE__); break; case EXECUTE: //run now if (item->match_handler) { _process_fun(item->match_handler, item->args); } Mem_free(item, __FILE__, __LINE__); break; case HEARTBEAT: timeout_del(item->timer_event); Mem_free(item->timer_event, __FILE__, __LINE__); Mem_free(item, __FILE__, __LINE__); _schedule_heartbeat(_this_); break; case DIAG: Mem_free(item, __FILE__, __LINE__); _print_diag(_this_); break; case TQUIT: Mem_free(item, __FILE__, __LINE__); event_base_loopexit(_this_->net_obj, 0); _free_items(items); break; default: assert(0); //should never get here break; } }