mirror of
https://github.com/Open-Cascade-SAS/OCCT.git
synced 2026-07-13 15:19:13 +08:00
Modeling - Fix array indexing bug in IntAna_IntQuadQuad::NextCurve method (#703)
Fixed a critical indexing bug in IntAna_IntQuadQuad::NextCurve where the method incorrectly used nextcurve[I] instead of nextcurve[I-1] for determining the theOpposite parameter. This mismatch between 1-indexed API parameters and 0-indexed array access could lead to out-of-bounds memory access and incorrect curve connectivity determination. Changes: - Fix IntAna_IntQuadQuad::NextCurve to use consistent I-1 indexing for both condition check and return value - Add comprehensive GTests covering NextCurve functionality, edge cases, and performance - Ensure proper error handling for invalid curve indices
This commit is contained in:
committed by
dpasukhi
parent
071c84a812
commit
ca3ee54adf
@@ -1576,16 +1576,8 @@ Standard_Integer IntAna_IntQuadQuad::NextCurve(const Standard_Integer I,
|
||||
{
|
||||
if (HasNextCurve(I))
|
||||
{
|
||||
if (nextcurve[I] > 0)
|
||||
{
|
||||
theOpposite = Standard_False;
|
||||
return (nextcurve[I - 1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
theOpposite = Standard_True;
|
||||
return (-nextcurve[I - 1]);
|
||||
}
|
||||
theOpposite = nextcurve[I - 1] < 0;
|
||||
return Abs(nextcurve[I - 1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user