Tue, 08/02/2011 - 06:26
Forums:
When i run my application in 64bit OS, it will crash at the following place.
ioff became 63712799. It is OK in 32bit OS.
----------------------------
int macrgfl_(long int *iadfld,
long int *iadflf,
integer *iphase,
integer *iznuti)
{
......
/* CALCUL DE L'ADRESSE DE T */
mcrlocv_((long int)t, (long int *)&iadt);
/* CALCUL DE l"OFFSET */
ioff = (*iadfld - iadt) / 8;
/* MISE A OVERFLOW DE LA ZONE UTILISATEUR EN CAS DE VERSION PRODUCTION */
if (*iphase == 1 && novfl == 0) {
ienr = *iznuti / 8;
maoverf_(&ienr, &t[ioff + 1]);
}
/* MISE A JOUR DU FLAG DE DEBUT */
t[ioff] = -134744073.;
......
}
----------------------------
G.P. Sun
Tue, 08/02/2011 - 15:26
I had a similar problem a few months ago.
See: http://www.opencascade.org/org/forum/thread_19966/
Probably there is also a bad type cast in your case.
You could try casting to size_t* instead of long int*.
Hope that helps.
Markus
Tue, 08/02/2011 - 16:16
Hello, G.P. Sun,
a similar problem has already been reported before and registered with ID=OCC22293. We will try to fix the problem in future OCCT releases. You will be able to see later if the issue is resolved by checking the references to the specified ID in OCCT Release Notes. The analysis of this issue will take some time depending on our technical capability and availability of resources.
Regards.
Sun, 10/09/2011 - 09:08
When I use BRepOffsetAPI_MakeFilling to fill a surface using OCC 6.5.1, I often get the same crash at t[ioff] = -134744073. Hope OCC team can fix it a.s.a.p.
Thanks.