void belle_sip_object_delete(void *ptr){ belle_sip_object_t *obj=BELLE_SIP_OBJECT(ptr); belle_sip_object_vptr_t *vptr; belle_sip_object_loose_weak_refs(obj); vptr=obj->vptr; while(vptr!=NULL){ if (vptr->destroy) vptr->destroy(obj); vptr=vptr->get_parent(); } belle_sip_object_data_clear(obj); belle_sip_free(obj); }
void belle_sip_object_data_clone( const belle_sip_object_t* src, belle_sip_object_t* dst, belle_sip_data_clone clone_func) { belle_sip_object_data_clear(dst); belle_sip_object_data_merge(src, dst, clone_func); }