/********************************************************************** caller: owner of the object prototype: ANSC_HANDLE AnscAsn1Clone ( ANSC_HANDLE hThisObject ); description: This function clones a same ASN.1 object. argument: ANSC_HANDLE hContainerContext This handle is actually the pointer of this object itself. return: The cloned container object. **********************************************************************/ ANSC_HANDLE AnscAsn1Clone ( ANSC_HANDLE hThisObject ) { PANSC_ASN1_OBJECT pMyObject = (PANSC_ASN1_OBJECT)hThisObject; PANSC_ASN1_OBJECT pNewObject = NULL; pNewObject = pMyObject->Create ( pMyObject->hContainerContext ); if( pNewObject == NULL) { AnscTrace("Failed to clone at AnscAsn1SetOfClone()\n"); return NULL; } /* * Copy all the attributes; */ /* AttrListCopyAllAttributes( &pNewObject->sAttrList, &pMyObject->sAttrList);*/ pNewObject->SetName(pNewObject, pMyObject->Name); if( !pMyObject->CopyTo(pMyObject, pNewObject)) { pNewObject->AsnFree(pNewObject); return NULL; } return pNewObject; }