rem: icalerror_assert( (cimpl->parent ==0),"The child component has already been added to a parent component. Remove the component with icalcomponent_remove_component before calling icalcomponent_add_component");
add: if (cimpl->parent !=0) { icalerror_set_errno(ICAL_USAGE_ERROR); }
context: icalcomponent_add_component (icalcomponent* parent, icalcomponent* child){    struct icalcomponent_impl *impl, *cimpl;    icalerror_check_arg_rv( (parent!=0), "parent");    icalerror_check_arg_rv( (child!=0), "child");        impl = (struct icalcomponent_impl*)parent;    cimpl = (struct icalcomponent_impl*)child;    icalerror_assert( (cimpl->parent ==0),"The child component has already been added to a parent component. Remove the component with icalcomponent_remove_component before calling icalcomponent_add_component");    cimpl->parent = parent;    pvl_push(impl->components,child);}