/** Function oyCMMapis_Clear * @memberof oyCMMapis_s * @brief clear the elements in a CMMapis list * * @param[in,out] list the list * @return 0 - success; otherwise - error * * @version Oyranos: 0.3.0 * @since 2011/02/01 (Oyranos: 0.3.0) * @date 2011/02/01 */ OYAPI int OYEXPORT oyCMMapis_Clear ( oyCMMapis_s * list ) { int error = !list; oyCMMapis_s_ * s = (oyCMMapis_s_*)list; if(!s) return -1; oyCheckType__m( oyOBJECT_CMM_APIS_S, return 0 ) if(!error) return oyStructList_Clear( s->list_ ); else return 0; }
/** Function oyStructList_Release__Members * @memberof oyStructList_s * @brief Custom StructList destructor * @internal * * This function will free up all memmory allocated by the * input object. First all object members witch have their * own release method are deallocated. Then the deallocateFunc_ * of the oy_ object is used to release the rest of the members * that were allocated with oy_->allocateFunc_. * * @param[in] structlist the StructList object * * @version Oyranos: x.x.x * @since YYYY/MM/DD (Oyranos: x.x.x) * @date YYYY/MM/DD */ void oyStructList_Release__Members( oyStructList_s_ * structlist ) { /* Deallocate members here * E.g: oyXXX_Release( &structlist->member ); */ oyStructList_Clear((oyStructList_s*)structlist); if(structlist->oy_->deallocateFunc_) { oyDeAlloc_f deallocateFunc = structlist->oy_->deallocateFunc_; /* Deallocate members of basic type here * E.g.: deallocateFunc( structlist->member ); */ if(structlist->ptr_) deallocateFunc(structlist->ptr_); if(structlist->list_name) deallocateFunc(structlist->list_name); structlist->type_ = 0; } }