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.
I've spent a big amount of today trying to debug this issue.
Here on i386 I get:
#7 0xb7bdbe13 in GlobalParams: :getVectorAntia lias (this=0x8005c008) at GlobalParams. cc:1701 >mutex. __data. __kind >mutex
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-
$5 = 1
(gdb) p &globalParams-
$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?