Hi Author,
Here is a first set of feedback for the version 6.7.1. Note that this is just a preliminary set which may be appended.
I. Changed behaviors vs 6.7.0
1. Standard::Free() now nullifies only typed pointers while void* are not nullified.
This leads to the following failing test cases:
/*! Tests memory allocation using Standard. Also tests Free() nullifies the pointer.*/
void Standard_MemoryTest::AllocateFree()
{
Standard_Address p;
p = Standard::Allocate (1);
QVERIFY (p != 0);
Standard::Free (p);
QVERIFY (p == 0);
}
void Standard_MemoryTest::AllocatorAllocateFree()
{
Standard_Address p;
//explicitly test all allocators as only one of them is enabled via Standard::Allocate()
Standard_MMgrRaw aRaw;
Standard_MMgrOpt anOpt;
Standard_MMgrTBBalloc aTBB;
Standard_MMgrRoot* aM[] = {&aRaw, &anOpt, &aTBB};
for (size_t i = 0; i < sizeof (aM)/sizeof (aM[0]); ++i) {
p = aM[i]->Allocate (1);
QVERIFY (p != 0);
aM[i]->Free (p);
QVERIFY (p == 0);
}
}
What is the purpose of this distinction (typed vs void pointer) ? Can't the behavior be made consistent ?
2. GeomInt_IntSS finds more solutions.
Found 6 solutions vs 5 in 6.7.0 on the surfaces s1 and s2 (in intersect subdirectory).
C++ reproducer:
static void DoGeomIntSSTest (const Handle(Geom_Surface)& theSurf1,
const Handle(Geom_Surface)& theSurf2,
const int theNbSol)
{
try {
OCC_CATCH_SIGNALS
GeomInt_IntSS anInter;
anInter.Perform (theSurf1, theSurf2, Precision::Confusion(), Standard_True);
QVERIFY (anInter.IsDone());
QCOMPARE (anInter.NbLines(), theNbSol);
} catch (...) {
QVERIFY (false);
}
}
DRAW reproducer:
intersect r s1 s2
It is difficult to say whether it should really be 6 and not 5 produced in 6.7.0. You might want to ask your engineering team to verify.
II. Regressions
1. Scaling loses p-curves (perhaps on planes only).
The C++ reproducer: see BRepTools_ModifierTest.cxx. The failure happens at line:
QVERIFY (!aPCurve.IsNull());
after
BRep_Tool::CurveOnSurface (aNewEdge, aPCurve, aSurf, aLoc, aNewF, aNewL);
DRAW reproducer:
restore face-plane.brep f
dump f #pcurves are present
tscale f 0.001
dump f #no pcurves
See test models in the subdirectory face (face-plane.brep, etc)
Best regards,
Commenter-2
P.S. The archive is here (http://cadexchanger.com/download/temp/occ671feedback.zip) as I couldn't find a way to attach a file to the post :-(