示例#1
0
/// Finalize (free) a RscQElem object
FSTATIC void
_resource_queue_qelem_finalize(RscQElem* self)
{
	DEBUGMSG3("%s.%d: UNREF(self->cmd, refcount=%d)"
	,	__FUNCTION__, __LINE__,	self->cmd->baseclass._refcount);
	UNREF(self->cmd);
	FREECLASSOBJ(self);
}
/// Finalizing function for Discovery objects
FSTATIC void
_discovery_finalize(AssimObj* gself)	///<[in/out] Object to finalize (free)
{
	Discovery*	self = CASTTOCLASS(Discovery, gself);
	char *		instancename = self->_instancename;
	
	if (self->_timerid > 0) {
		g_source_remove(self->_timerid);
		self->_timerid = 0;
	}
	if (self->_config) {
		UNREF(self->_config);
	}
	if (_discovery_timers && instancename) {
		self->_instancename = NULL;	// Avoid infinite recursion...
		g_hash_table_remove(_discovery_timers, instancename);
	}
	if (instancename) {
		g_free(instancename);
		self->_instancename = instancename = NULL;
	}
	
	FREECLASSOBJ(self); self=NULL;
}