1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-24 13:50:49 +03:00

0026042: OCCT won't work with the latest Xcode

Dereferenced null pointers was eliminated for PLib, BSplCLib and BSplSLib. All affected code was changed accordingly.
This commit is contained in:
akz
2015-09-23 16:31:15 +03:00
committed by bugmaster
parent 42a9dcfc64
commit 0e14656b30
53 changed files with 867 additions and 906 deletions

View File

@@ -260,9 +260,9 @@ void Geom2d_BSplineCurve::IncreaseDegree
BSplCLib::IncreaseDegree
(deg,Degree, periodic,
poles->Array1(),weights->Array1(),
poles->Array1(),&weights->Array1(),
knots->Array1(),mults->Array1(),
npoles->ChangeArray1(),nweights->ChangeArray1(),
npoles->ChangeArray1(),&nweights->ChangeArray1(),
nknots->ChangeArray1(),nmults->ChangeArray1());
}
else {
@@ -270,10 +270,10 @@ void Geom2d_BSplineCurve::IncreaseDegree
BSplCLib::IncreaseDegree
(deg,Degree, periodic,
poles->Array1(),
*((TColStd_Array1OfReal*) NULL),
BSplCLib::NoWeights(),
knots->Array1(),mults->Array1(),
npoles->ChangeArray1(),
*((TColStd_Array1OfReal*) NULL),
BSplCLib::NoWeights(),
nknots->ChangeArray1(),nmults->ChangeArray1());
}
@@ -368,7 +368,7 @@ void Geom2d_BSplineCurve::InsertKnots(const TColStd_Array1OfReal& Knots,
if (!BSplCLib::PrepareInsertKnots(deg,periodic,
knots->Array1(),mults->Array1(),
Knots,Mults,nbpoles,nbknots,Epsilon,Add))
Knots,&Mults,nbpoles,nbknots,Epsilon,Add))
Standard_ConstructionError::Raise("Geom2d_BSplineCurve::InsertKnots");
if (nbpoles == poles->Length()) return;
@@ -386,10 +386,10 @@ void Geom2d_BSplineCurve::InsertKnots(const TColStd_Array1OfReal& Knots,
Handle(TColStd_HArray1OfReal) nweights =
new TColStd_HArray1OfReal(1,nbpoles);
BSplCLib::InsertKnots(deg,periodic,
poles->Array1(), weights->Array1(),
poles->Array1(), &weights->Array1(),
knots->Array1(), mults->Array1(),
Knots, Mults,
npoles->ChangeArray1(), nweights->ChangeArray1(),
Knots, &Mults,
npoles->ChangeArray1(), &nweights->ChangeArray1(),
nknots->ChangeArray1(), nmults->ChangeArray1(),
Epsilon,Add);
weights = nweights;
@@ -397,11 +397,11 @@ void Geom2d_BSplineCurve::InsertKnots(const TColStd_Array1OfReal& Knots,
else {
BSplCLib::InsertKnots(deg,periodic,
poles->Array1(),
*((TColStd_Array1OfReal*) NULL),
BSplCLib::NoWeights(),
knots->Array1(), mults->Array1(),
Knots, Mults,
Knots, &Mults,
npoles->ChangeArray1(),
*((TColStd_Array1OfReal*) NULL),
BSplCLib::NoWeights(),
nknots->ChangeArray1(), nmults->ChangeArray1(),
Epsilon,Add);
}
@@ -453,9 +453,9 @@ Standard_Boolean Geom2d_BSplineCurve::RemoveKnot
new TColStd_HArray1OfReal(1,npoles->Length());
if (!BSplCLib::RemoveKnot
(Index, M, deg, periodic,
poles->Array1(),weights->Array1(),
poles->Array1(),&weights->Array1(),
knots->Array1(),mults->Array1(),
npoles->ChangeArray1(), nweights->ChangeArray1(),
npoles->ChangeArray1(), &nweights->ChangeArray1(),
nknots->ChangeArray1(),nmults->ChangeArray1(),
Tolerance))
return Standard_False;
@@ -465,10 +465,10 @@ Standard_Boolean Geom2d_BSplineCurve::RemoveKnot
if (!BSplCLib::RemoveKnot
(Index, M, deg, periodic,
poles->Array1(),
*((TColStd_Array1OfReal*) NULL),
BSplCLib::NoWeights(),
knots->Array1(),mults->Array1(),
npoles->ChangeArray1(),
*((TColStd_Array1OfReal*) NULL),
BSplCLib::NoWeights(),
nknots->ChangeArray1(),nmults->ChangeArray1(),
Tolerance))
return Standard_False;
@@ -1053,18 +1053,18 @@ void Geom2d_BSplineCurve::SetNotPeriodic ()
BSplCLib::Unperiodize
(deg,mults->Array1(),knots->Array1(),poles->Array1(),
weights->Array1(),nmults->ChangeArray1(),
&weights->Array1(),nmults->ChangeArray1(),
nknots->ChangeArray1(),npoles->ChangeArray1(),
nweights->ChangeArray1());
&nweights->ChangeArray1());
}
else {
BSplCLib::Unperiodize
(deg,mults->Array1(),knots->Array1(),poles->Array1(),
*((TColStd_Array1OfReal*) NULL),nmults->ChangeArray1(),
BSplCLib::NoWeights(),nmults->ChangeArray1(),
nknots->ChangeArray1(),npoles->ChangeArray1(),
*((TColStd_Array1OfReal*) NULL));
BSplCLib::NoWeights());
}
poles = npoles;

View File

@@ -798,7 +798,7 @@ public:
Standard_EXPORT void Weights (TColStd_Array1OfReal& W) const;
//! Returns the weights of the B-spline curve;
Standard_EXPORT const TColStd_Array1OfReal& Weights() const;
Standard_EXPORT const TColStd_Array1OfReal* Weights() const;
//! Applies the transformation T to this BSpline curve.
Standard_EXPORT void Transform (const gp_Trsf2d& T);

View File

@@ -195,21 +195,21 @@ void Geom2d_BSplineCurve::D0(const Standard_Real U,
Standard_Integer aSpanIndex = 0;
Standard_Real aNewU(U);
PeriodicNormalization(aNewU);
BSplCLib::LocateParameter(deg, knots->Array1(), mults->Array1(), U, periodic, aSpanIndex, aNewU);
BSplCLib::LocateParameter(deg, knots->Array1(), &mults->Array1(), U, periodic, aSpanIndex, aNewU);
if (aNewU < knots->Value(aSpanIndex))
aSpanIndex--;
if (rational)
{
BSplCLib::D0(aNewU,aSpanIndex,deg,periodic,POLES,
weights->Array1(),
knots->Array1(), mults->Array1(),
&weights->Array1(),
knots->Array1(), &mults->Array1(),
P);
}
else
{
BSplCLib::D0(aNewU,aSpanIndex,deg,periodic,POLES,
*((TColStd_Array1OfReal*) NULL),
knots->Array1(), mults->Array1(),
BSplCLib::NoWeights(),
knots->Array1(), &mults->Array1(),
P);
}
}
@@ -227,21 +227,21 @@ void Geom2d_BSplineCurve::D1(const Standard_Real U,
Standard_Integer aSpanIndex = 0;
Standard_Real aNewU(U);
PeriodicNormalization(aNewU);
BSplCLib::LocateParameter(deg, knots->Array1(), mults->Array1(), U, periodic, aSpanIndex, aNewU);
BSplCLib::LocateParameter(deg, knots->Array1(), &mults->Array1(), U, periodic, aSpanIndex, aNewU);
if (aNewU < knots->Value(aSpanIndex))
aSpanIndex--;
if (rational)
{
BSplCLib::D1(aNewU,aSpanIndex,deg,periodic,POLES,
weights->Array1(),
knots->Array1(), mults->Array1(),
&weights->Array1(),
knots->Array1(), &mults->Array1(),
P, V1);
}
else
{
BSplCLib::D1(aNewU,aSpanIndex,deg,periodic,POLES,
*((TColStd_Array1OfReal*) NULL),
knots->Array1(), mults->Array1(),
BSplCLib::NoWeights(),
knots->Array1(), &mults->Array1(),
P, V1);
}
}
@@ -259,21 +259,21 @@ void Geom2d_BSplineCurve::D2(const Standard_Real U,
Standard_Integer aSpanIndex = 0;
Standard_Real aNewU(U);
PeriodicNormalization(aNewU);
BSplCLib::LocateParameter(deg, knots->Array1(), mults->Array1(), U, periodic, aSpanIndex, aNewU);
BSplCLib::LocateParameter(deg, knots->Array1(), &mults->Array1(), U, periodic, aSpanIndex, aNewU);
if (aNewU < knots->Value(aSpanIndex))
aSpanIndex--;
if (rational)
{
BSplCLib::D2(aNewU,aSpanIndex,deg,periodic,POLES,
weights->Array1(),
knots->Array1(), mults->Array1(),
&weights->Array1(),
knots->Array1(), &mults->Array1(),
P, V1, V2);
}
else
{
BSplCLib::D2(aNewU,aSpanIndex,deg,periodic,POLES,
*((TColStd_Array1OfReal*) NULL),
knots->Array1(), mults->Array1(),
BSplCLib::NoWeights(),
knots->Array1(), &mults->Array1(),
P, V1, V2);
}
}
@@ -292,21 +292,21 @@ void Geom2d_BSplineCurve::D3(const Standard_Real U,
Standard_Integer aSpanIndex = 0;
Standard_Real aNewU(U);
PeriodicNormalization(aNewU);
BSplCLib::LocateParameter(deg, knots->Array1(), mults->Array1(), U, periodic, aSpanIndex, aNewU);
BSplCLib::LocateParameter(deg, knots->Array1(), &mults->Array1(), U, periodic, aSpanIndex, aNewU);
if (aNewU < knots->Value(aSpanIndex))
aSpanIndex--;
if (rational)
{
BSplCLib::D3(aNewU,aSpanIndex,deg,periodic,POLES,
weights->Array1(),
knots->Array1(), mults->Array1(),
&weights->Array1(),
knots->Array1(), &mults->Array1(),
P, V1, V2, V3);
}
else
{
BSplCLib::D3(aNewU,aSpanIndex,deg,periodic,POLES,
*((TColStd_Array1OfReal*) NULL),
knots->Array1(), mults->Array1(),
BSplCLib::NoWeights(),
knots->Array1(), &mults->Array1(),
P, V1, V2, V3);
}
}
@@ -323,12 +323,12 @@ gp_Vec2d Geom2d_BSplineCurve::DN(const Standard_Real U,
if ( rational ) {
BSplCLib::DN(U,N,0,deg,periodic,POLES,
weights->Array1(),
FKNOTS,FMULTS,V);
&weights->Array1(),
FKNOTS,FMULTS, V);
}
else {
BSplCLib::DN(U,N,0,deg,periodic,POLES,
*((TColStd_Array1OfReal*) NULL),
BSplCLib::NoWeights(),
FKNOTS,FMULTS,V);
}
return V;
@@ -485,12 +485,12 @@ void Geom2d_BSplineCurve::LocalD0
if ( rational ) {
BSplCLib::D0(u,index,deg,periodic,POLES,
weights->Array1(),
&weights->Array1(),
FKNOTS,FMULTS,P);
}
else {
BSplCLib::D0(u,index,deg,periodic,POLES,
*((TColStd_Array1OfReal*) NULL),
BSplCLib::NoWeights(),
FKNOTS,FMULTS,P);
}
}
@@ -516,12 +516,12 @@ void Geom2d_BSplineCurve::LocalD1 (const Standard_Real U,
if (rational) {
BSplCLib::D1(u,index,deg,periodic,POLES,
weights->Array1(),
&weights->Array1(),
FKNOTS,FMULTS,P,V1);
}
else {
BSplCLib::D1(u,index,deg,periodic,POLES,
*((TColStd_Array1OfReal*) NULL),
BSplCLib::NoWeights(),
FKNOTS,FMULTS,P,V1);
}
}
@@ -549,12 +549,12 @@ void Geom2d_BSplineCurve::LocalD2
if ( rational ) {
BSplCLib::D2(u,index,deg,periodic,POLES,
weights->Array1(),
&weights->Array1(),
FKNOTS,FMULTS,P,V1,V2);
}
else {
BSplCLib::D2(u,index,deg,periodic,POLES,
*((TColStd_Array1OfReal*) NULL),
BSplCLib::NoWeights(),
FKNOTS,FMULTS,P,V1,V2);
}
}
@@ -583,12 +583,12 @@ void Geom2d_BSplineCurve::LocalD3
if ( rational ) {
BSplCLib::D3(u,index,deg,periodic,POLES,
weights->Array1(),
&weights->Array1(),
FKNOTS,FMULTS,P,V1,V2,V3);
}
else {
BSplCLib::D3(u,index,deg,periodic,POLES,
*((TColStd_Array1OfReal*) NULL),
BSplCLib::NoWeights(),
FKNOTS,FMULTS,P,V1,V2,V3);
}
}
@@ -616,12 +616,12 @@ gp_Vec2d Geom2d_BSplineCurve::LocalDN
if ( rational ) {
BSplCLib::DN(u,N,index,deg,periodic,POLES,
weights->Array1(),
&weights->Array1(),
FKNOTS,FMULTS,V);
}
else {
BSplCLib::DN(u,N,index,deg,periodic,POLES,
*((TColStd_Array1OfReal*) NULL),
BSplCLib::NoWeights(),
FKNOTS,FMULTS,V);
}
return V;
@@ -750,10 +750,10 @@ void Geom2d_BSplineCurve::Weights
}
}
const TColStd_Array1OfReal& Geom2d_BSplineCurve::Weights() const
const TColStd_Array1OfReal* Geom2d_BSplineCurve::Weights() const
{
if (IsRational())
return weights->Array1();
return &weights->Array1();
return BSplCLib::NoWeights();
}
@@ -856,7 +856,7 @@ void Geom2d_BSplineCurve::Resolution(const Standard_Real ToleranceUV,
new_weights(ii) = weights->Array1()(((ii-1) % poles->Length()) + 1) ;
}
BSplCLib::Resolution(new_poles,
new_weights,
&new_weights,
new_poles.Length(),
flatknots->Array1(),
deg,
@@ -865,7 +865,7 @@ void Geom2d_BSplineCurve::Resolution(const Standard_Real ToleranceUV,
}
else {
BSplCLib::Resolution(new_poles,
*((TColStd_Array1OfReal*) NULL),
BSplCLib::NoWeights(),
new_poles.Length(),
flatknots->Array1(),
deg,
@@ -876,7 +876,7 @@ void Geom2d_BSplineCurve::Resolution(const Standard_Real ToleranceUV,
else {
if (rational) {
BSplCLib::Resolution(poles->Array1(),
weights->Array1(),
&weights->Array1(),
poles->Length(),
flatknots->Array1(),
deg,
@@ -885,7 +885,7 @@ void Geom2d_BSplineCurve::Resolution(const Standard_Real ToleranceUV,
}
else {
BSplCLib::Resolution(poles->Array1(),
*((TColStd_Array1OfReal*) NULL),
BSplCLib::NoWeights(),
poles->Length(),
flatknots->Array1(),
deg,

View File

@@ -155,18 +155,18 @@ void Geom2d_BezierCurve::Increase (const Standard_Integer Deg)
if (IsRational()) {
nweights = new TColStd_HArray1OfReal(1,Deg+1);
BSplCLib::IncreaseDegree(Degree(), Deg, 0,
poles->Array1(),weights->Array1(),
poles->Array1(),&weights->Array1(),
bidknots, bidmults,
npoles->ChangeArray1(),nweights->ChangeArray1(),
npoles->ChangeArray1(),&nweights->ChangeArray1(),
bidknots, bidmults);
}
else {
BSplCLib::IncreaseDegree(Degree(), Deg, 0,
poles->Array1(),
*((TColStd_Array1OfReal*) NULL),
BSplCLib::NoWeights(),
bidknots, bidmults,
npoles->ChangeArray1(),
*((TColStd_Array1OfReal*) NULL),
BSplCLib::NoWeights(),
bidknots, bidmults);
}
@@ -378,17 +378,14 @@ void Geom2d_BezierCurve::Segment
//
if (IsRational()) {
PLib::Trimming(U1,U2,coeffs->ChangeArray1(),wcoeffs->ChangeArray1());
PLib::CoefficientsPoles(coeffs->Array1(),wcoeffs->Array1(),
poles->ChangeArray1(),weights->ChangeArray1());
PLib::Trimming(U1,U2,coeffs->ChangeArray1(),&wcoeffs->ChangeArray1());
PLib::CoefficientsPoles(coeffs->Array1(),&wcoeffs->Array1(),
poles->ChangeArray1(),&weights->ChangeArray1());
}
else {
PLib::Trimming(U1,U2,coeffs->ChangeArray1(),
*((TColStd_Array1OfReal*) NULL));
PLib::CoefficientsPoles(coeffs->Array1(),
*((TColStd_Array1OfReal*) NULL),
poles->ChangeArray1(),
*((TColStd_Array1OfReal*) NULL));
PLib::Trimming(U1,U2,coeffs->ChangeArray1(), PLib::NoWeights());
PLib::CoefficientsPoles(coeffs->Array1(), PLib::NoWeights(),
poles->ChangeArray1(), PLib::NoWeights());
}
UpdateCoefficients();
}
@@ -557,12 +554,10 @@ void Geom2d_BezierCurve::D0 (const Standard_Real U, gp_Pnt2d& P ) const
// ((Geom2d_BezierCurve*)(void*)this)->UpdateCoefficients(U);
if (IsRational())
BSplCLib::CacheD0(U,Degree(),parametercache,spanlenghtcache,
coeffs->Array1(),wcoeffs->Array1(),P);
coeffs->Array1(),&wcoeffs->Array1(),P);
else
BSplCLib::CacheD0(U,Degree(),parametercache,spanlenghtcache,
coeffs->Array1(),
*((TColStd_Array1OfReal*) NULL),
P);
coeffs->Array1(), BSplCLib::NoWeights(), P);
}
//=======================================================================
@@ -580,12 +575,10 @@ void Geom2d_BezierCurve::D1(const Standard_Real U,
// ((Geom2d_BezierCurve*)(void*)this)->UpdateCoefficients(U);
if (IsRational())
BSplCLib::CacheD1(U,Degree(),parametercache,spanlenghtcache,
coeffs->Array1(),wcoeffs->Array1(),P,V1);
coeffs->Array1(),&wcoeffs->Array1(),P,V1);
else
BSplCLib::CacheD1(U,Degree(),parametercache,spanlenghtcache,
coeffs->Array1(),
*((TColStd_Array1OfReal*) NULL),
P,V1);
coeffs->Array1(), BSplCLib::NoWeights(), P,V1);
}
//=======================================================================
@@ -604,12 +597,10 @@ void Geom2d_BezierCurve::D2 (const Standard_Real U,
// ((Geom2d_BezierCurve*)(void*)this)->UpdateCoefficients(U);
if (IsRational())
BSplCLib::CacheD2(U,Degree(),parametercache,spanlenghtcache,
coeffs->Array1(),wcoeffs->Array1(),P,V1,V2);
coeffs->Array1(),&wcoeffs->Array1(),P,V1,V2);
else
BSplCLib::CacheD2(U,Degree(),parametercache,spanlenghtcache,
coeffs->Array1(),
*((TColStd_Array1OfReal*) NULL),
P,V1,V2);
coeffs->Array1(), BSplCLib::NoWeights(), P,V1,V2);
}
//=======================================================================
@@ -629,12 +620,10 @@ void Geom2d_BezierCurve::D3 (const Standard_Real U,
// ((Geom2d_BezierCurve*)(void*)this)->UpdateCoefficients(U);
if (IsRational())
BSplCLib::CacheD3(U,Degree(),parametercache,spanlenghtcache,
coeffs->Array1(),wcoeffs->Array1(),P,V1,V2,V3);
coeffs->Array1(),&wcoeffs->Array1(),P,V1,V2,V3);
else
BSplCLib::CacheD3(U,Degree(),parametercache,spanlenghtcache,
coeffs->Array1(),
*((TColStd_Array1OfReal*) NULL),
P,V1,V2,V3);
coeffs->Array1(), BSplCLib::NoWeights(), P,V1,V2,V3);
}
//=======================================================================
@@ -653,13 +642,13 @@ gp_Vec2d Geom2d_BezierCurve::DN (const Standard_Real U,
if (IsRational())
BSplCLib::DN(U,N,0,Degree(),Standard_False,
poles->Array1(),weights->Array1(),
bidknots,bidmults,V);
poles->Array1(),&weights->Array1(),
bidknots,&bidmults,V);
else
BSplCLib::DN(U,N,0,Degree(),Standard_False,
poles->Array1(),
*((TColStd_Array1OfReal*) NULL),
bidknots,bidmults,V);
BSplCLib::NoWeights(),
bidknots,&bidmults,V);
return V;
}
@@ -817,7 +806,7 @@ void Geom2d_BezierCurve::Resolution(const Standard_Real ToleranceUV,
if (IsRational()) {
BSplCLib::Resolution(poles->Array1(),
weights->Array1(),
&weights->Array1(),
poles->Length(),
bidflatknots,
Degree(),
@@ -826,7 +815,7 @@ void Geom2d_BezierCurve::Resolution(const Standard_Real ToleranceUV,
}
else {
BSplCLib::Resolution(poles->Array1(),
*((TColStd_Array1OfReal*) NULL),
BSplCLib::NoWeights(),
poles->Length(),
bidflatknots,
Degree(),
@@ -919,14 +908,14 @@ void Geom2d_BezierCurve::UpdateCoefficients(const Standard_Real )
1, 2*(Degree()+1));
if (IsRational())
BSplCLib::BuildCache(parametercache,spanlenghtcache,0,Degree(),
bidflatknots,poles->Array1(),weights->Array1(),
coeffs->ChangeArray1(),wcoeffs->ChangeArray1());
bidflatknots,poles->Array1(),&weights->Array1(),
coeffs->ChangeArray1(),&wcoeffs->ChangeArray1());
else
BSplCLib::BuildCache(parametercache,spanlenghtcache,0,Degree(),
bidflatknots,poles->Array1(),
*((TColStd_Array1OfReal*) NULL),
BSplCLib::NoWeights(),
coeffs->ChangeArray1(),
*((TColStd_Array1OfReal*) NULL));
BSplCLib::NoWeights());
validcache = 1;
}