rem: free(handler);
add: wfree(handler);
context: WMDeleteIdleHandler(WMHandlerID handlerID){    IdleHandler *tmp, *handler = (IdleHandler*)handlerID;    if (!handler || !idleHandler)	return;    tmp = idleHandler;    if (tmp == handler) {	idleHandler = handler->next;	free(handler);    } else {	while (tmp->next) {	    if (tmp->next == handler) {		tmp->next = handler->next;		free(handler);		break;	    }	    tmp = tmp->next;	}    }}