Comment 8 for bug 1205732

Revision history for this message
Dmitry Shachnev (mitya57) wrote :

I've spent a big amount of today trying to debug this issue.

Here on i386 I get:

#7 0xb7bdbe13 in GlobalParams::getVectorAntialias (this=0x8005c008) at GlobalParams.cc:1701
1701 lockGlobalParams;
(gdb) p this
$1 = (GlobalParams * const) 0x8005c008
(gdb) p globalParams
$2 = (GlobalParams *) 0x8005c008
(gdb) p mutex.__data.__kind
$3 = -2146993984 ### BROKEN ###
(gdb) p &mutex
$4 = (GooMutex *) 0x8005c0c8
(gdb) p globalParams->mutex.__data.__kind
$5 = 1
(gdb) p &globalParams->mutex
$6 = (GooMutex *) 0x8005c0f8

For some reason, "mutex" is 6 bytes behind "globalParams->mutex" (though "this" and "globalParams" are the same object).

The attached patch (against poppler) partially works around the issue by explicitly using "globalParams" object. However, this only helps when running xpdf without any arguments. When trying to open the file, I still have the same crash, and "globalParams->mutex" is broken.

Any thoughts?