static CMPIStatus mergeParents(ClassRegister * cr, ClClass * cl, char *p, CMPIConstClass * cc, ReadCtl * rctl) { CMPIStatus st = { CMPI_RC_OK, NULL }; CMPIConstClass *pcc = NULL; unsigned char originId = 0; char *np = NULL; ReadCtl ctl; if (cc) { if (p) originId = ClClassAddGrandParent(cl, p); cpyClass(cl, cc, originId); } if (p) { ctl = *rctl; pcc = getClass(cr, p, &ctl); if (pcc == NULL) { st.rc = CMPI_RC_ERR_INVALID_SUPERCLASS; return st; } np = (char *) pcc->ft->getCharSuperClassName(pcc); st = mergeParents(cr, cl, np, pcc, rctl); if (ctl != cached) CMRelease(pcc); } return st; }
static CMPIStatus mergeParents(ClassRegister * cr, ClClass * cl, char *p, CMPIConstClass * cc) { CMPIStatus st = { CMPI_RC_OK, NULL }; CMPIConstClass *pcc = NULL; if (p) { pcc = getClass(cr, p); if (pcc == NULL) { st.rc = CMPI_RC_ERR_INVALID_SUPERCLASS; return st; } cpyClass(cl, pcc); } if (cc) { cpyClass(cl, cc); } return st; }