mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-14 13:30:48 +03:00
0024909: Modeling Algorithms - SIGSEGV in buildsweep
Update Extrema_ExtCC::PrepareParallelResult and Extrema_ExtCC::PrepareResults
This commit is contained in:
@@ -411,7 +411,7 @@ void Extrema_ExtCC::PrepareParallelResult(const Standard_Real theUt11,
|
|||||||
if (((aType1 != GeomAbs_Line) && (aType1 != GeomAbs_Circle)) ||
|
if (((aType1 != GeomAbs_Line) && (aType1 != GeomAbs_Circle)) ||
|
||||||
((aType2 != GeomAbs_Line) && (aType2 != GeomAbs_Circle)))
|
((aType2 != GeomAbs_Line) && (aType2 != GeomAbs_Circle)))
|
||||||
{
|
{
|
||||||
mySqDist.Append(theSqDist);
|
//mySqDist.Append(theSqDist);
|
||||||
myDone = Standard_True;
|
myDone = Standard_True;
|
||||||
myIsParallel = Standard_True;
|
myIsParallel = Standard_True;
|
||||||
return;
|
return;
|
||||||
@@ -432,11 +432,7 @@ void Extrema_ExtCC::PrepareParallelResult(const Standard_Real theUt11,
|
|||||||
!isReversed ? theUt21 : theUt11,
|
!isReversed ? theUt21 : theUt11,
|
||||||
!isReversed ? theUt22 : theUt12);
|
!isReversed ? theUt22 : theUt12);
|
||||||
|
|
||||||
if (ExtPLin.IsDone())
|
if (!ExtPLin.IsDone())
|
||||||
{
|
|
||||||
mySqDist.Append(theSqDist);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
myIsParallel = Standard_False;
|
myIsParallel = Standard_False;
|
||||||
}
|
}
|
||||||
@@ -837,7 +833,9 @@ void Extrema_ExtCC::PrepareResults(const Extrema_ExtElC& AlgExt,
|
|||||||
if (myIsParallel) {
|
if (myIsParallel) {
|
||||||
PrepareParallelResult(Ut11, Ut12, Ut21, Ut22, AlgExt.SquareDistance());
|
PrepareParallelResult(Ut11, Ut12, Ut21, Ut22, AlgExt.SquareDistance());
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
|
if(mypoints.IsEmpty())
|
||||||
|
{
|
||||||
NbExt = AlgExt.NbExt();
|
NbExt = AlgExt.NbExt();
|
||||||
for (i = 1; i <= NbExt; i++) {
|
for (i = 1; i <= NbExt; i++) {
|
||||||
// Verification de la validite des parametres
|
// Verification de la validite des parametres
|
||||||
@@ -911,7 +909,7 @@ void Extrema_ExtCC::PrepareResults(const Extrema_ECC& AlgExt,
|
|||||||
{
|
{
|
||||||
PrepareParallelResult(Ut11, Ut12, Ut21, Ut22, AlgExt.SquareDistance());
|
PrepareParallelResult(Ut11, Ut12, Ut21, Ut22, AlgExt.SquareDistance());
|
||||||
}
|
}
|
||||||
else
|
if(mypoints.IsEmpty())
|
||||||
{
|
{
|
||||||
NbExt = AlgExt.NbExt();
|
NbExt = AlgExt.NbExt();
|
||||||
for (i = 1; i <= NbExt; i++)
|
for (i = 1; i <= NbExt; i++)
|
||||||
|
15
tests/bugs/modalg_7/bug24909_4
Normal file
15
tests/bugs/modalg_7/bug24909_4
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
puts "========"
|
||||||
|
puts "0024909: Modeling Algorithms - SIGSEGV in buildsweep"
|
||||||
|
puts "========"
|
||||||
|
puts ""
|
||||||
|
|
||||||
|
pload ALL
|
||||||
|
circle c1 0 0 0 40
|
||||||
|
mkedge e1 c1
|
||||||
|
wire w1 e1
|
||||||
|
line l1 0 0 0 0 0 20
|
||||||
|
mkedge e2 l1 0 10
|
||||||
|
wire w2 e2
|
||||||
|
mksweep w1
|
||||||
|
addsweep w2
|
||||||
|
buildsweep sw1
|
Reference in New Issue
Block a user