diff --git a/EXE_GeoInters.cpp b/EXE_GeoInters.cpp index 5e75ed2..78ddb87 100644 --- a/EXE_GeoInters.cpp +++ b/EXE_GeoInters.cpp @@ -1020,16 +1020,22 @@ MyCurveCurveInters( const int nId1, const int nId2, const int nDestGrpId, int& n return GDB_ID_NULL ; // recupero le curve e le porto nel riferimento del gruppo di destinazione - PtrOwner pCrv1( GetCurve( pGeomDB->GetGeoObj( nId1))->Clone()) ; - if ( IsNull( pCrv1)) + ICurve* pOrigCrv1 = GetCurve( pGeomDB->GetGeoObj( nId1)) ; + if ( pOrigCrv1 == nullptr) + return GDB_ID_NULL ; + PtrOwner pCrv1( pOrigCrv1->Clone()) ; + if( IsNull( pCrv1)) return GDB_ID_NULL ; Frame3d frCrv1 ; if ( ! pGeomDB->GetGlobFrame( nId1, frCrv1)) return GDB_ID_NULL ; pCrv1->LocToLoc( frCrv1, frDest) ; - PtrOwner pCrv2( GetCurve( pGeomDB->GetGeoObj( nId2))->Clone()) ; - if ( IsNull( pCrv2)) + ICurve* pOrigCrv2 = GetCurve( pGeomDB->GetGeoObj( nId2)) ; + if ( pOrigCrv2 == nullptr) + return GDB_ID_NULL ; + PtrOwner pCrv2( pOrigCrv2->Clone()) ; + if( IsNull( pCrv2)) return GDB_ID_NULL ; Frame3d frCrv2 ; if ( ! pGeomDB->GetGlobFrame( nId2, frCrv2))