On Tue, 08 Jun 2010 17:45:59 +0100, Jeremy Sanders <[email protected]> wrote: > Hi - I have an example program here which used to work in earlier sip/PyQt > releases. Now it causes a core dump: > > #0 QRegion::QRegion (this=0x8f72c0, r=...) at painting/qregion.cpp:3895 > #1 0x0000003ea5ce12ad in QPaintEngineState::clipRegion (this=<value > optimized out>) > at painting/qpainter.cpp:8470 > #2 0x00007ffff1040157 in meth_QPaintEngineState_clipRegion > (sipSelf=0x8c36d0, sipArgs=<value optimized out>) > at sipQtGuiQPaintEngineState.cpp:385 > #3 0x0000003eb78dcaba in call_function (f=<value optimized out>, > throwflag=<value optimized out>) > at Python/ceval.c:3706 > > This fails under Fedora 12 x86-64 and on a own-built SIP/PyQt4 under linux > i386. I'm using Qt-4.6.2. > > Please download the example program: > http://barmag.net/tmp/svg_export.py > > If you uncomment the print statements on lines 175 and 177 the program no
> longer crashes, but state.clipOperation() looks like garbage. Fixed in tonight's PyQt snapshot. SIP v4.10.1 included an "improvement" where a copy of a const& argument to a reimplementation of a virtual is made before wrapping it. This means that Python code doesn't have to explicitly make a copy if it wants to keep a reference and avoid potential crashes if the copy isn't made. It seems that in some cases this is the wrong thing to do - particularly if the argument is actually an internal sub-class of the advertised type. Phil _______________________________________________ PyQt mailing list [email protected] http://www.riverbankcomputing.com/mailman/listinfo/pyqt
