On Fri, 7 May 2010 17:19:04 -0400 Michael Gilbert wrote:
> On Fri, 07 May 2010 22:32:11 +0200 Michael wrote:
>> I pinpointed it down to file PDFCore.cc line 450 ff.:
>>
>> // if the display properties have changed, create a new PDFCorePage
>> // object
>> if (force || pages->getLength() == 0 ||
>> (!continuousMode && topPageA != topPage) ||
>> zoomA != zoom || dpiA != dpi || rotateA != rotate) {
>>
>> The condition seems to be "true" all the time, even though every single
Note that zoomA, dpiA, rotateA are floating point. (Exact) comparison of two
floating point number can give unexpected result due to rounding (especially due
to internal use of extended precision [long double] in i386 fpu registers).
So this may be not gcc bug, but one more of those infamous "standard-compliant
(but very unexpected by programmer) change in behavior".
Try to convert 'aA != a' -> 'fabs(aA - a) < 0.001' (fine-tune 0.001 depending on
range) for zoom, dpi, rotate.
Maybe, playing with -ffstore-float would help too (likely, there are a lot of
similar code in sources, see -Wfloat-equal option).
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]