[PyKDE] Crash on exit

Jan Ekholm chakie at infa.abo.fi
Thu Mar 8 14:53:39 GMT 2001


On Thu, 8 Mar 2001, Phil Thompson wrote:

>It's a bug in sip 2.3. sip 2.4pre1 (in
>http://www.river-bank.co.uk/software/private) has the fix.

Now I found it, the URL is:

	http://www.river-bank.demon.co.uk/software/private/

However, I failed to compile it. Did a:

# ./configure --with-qt-dir=/usr/lib/qt-2.2.1

which worked ok and found Qt quite fine. Then I did (sorry for the long
output):

# make

make  all-recursive
make[1]: Entering directory `/opt/src/sip-2.4pre1'
Making all in sip
make[2]: Entering directory `/opt/src/sip-2.4pre1/sip'
gcc -DHAVE_CONFIG_H -I. -I. -I..     -O2 -c main.c
gcc -DHAVE_CONFIG_H -I. -I. -I..     -O2 -c parser.c
gcc -DHAVE_CONFIG_H -I. -I. -I..     -O2 -c lexer.c
gcc -DHAVE_CONFIG_H -I. -I. -I..     -O2 -c transform.c
gcc -DHAVE_CONFIG_H -I. -I. -I..     -O2 -c gencode.c
gcc -DHAVE_CONFIG_H -I. -I. -I..     -O2 -c heap.c
/bin/sh ../libtool --mode=link gcc  -O2  -o sip  main.o parser.o lexer.o
transform.o gencode.o heap.o -lfl
mkdir .libs
gcc -O2 -o sip main.o parser.o lexer.o transform.o gencode.o heap.o -lfl
make[2]: Leaving directory `/opt/src/sip-2.4pre1/sip'
Making all in siplib
make[2]: Entering directory `/opt/src/sip-2.4pre1/siplib'
/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
-DSIP_QT_SUPPORT -I/usr/lib/qt-2.2.1/includ
e  -I/usr/X11R6/include -I/usr/local/include/python2.0   -O2 -c siplib.c
mkdir .libs
gcc -DHAVE_CONFIG_H -I. -I. -I.. -DSIP_QT_SUPPORT
-I/usr/lib/qt-2.2.1/include -I/usr/X11R6/include -I/usr/local
/include/python2.0 -O2 -c  -fPIC -DPIC siplib.c -o .libs/siplib.lo
gcc -DHAVE_CONFIG_H -I. -I. -I.. -DSIP_QT_SUPPORT
-I/usr/lib/qt-2.2.1/include -I/usr/X11R6/include -I/usr/local
/include/python2.0 -O2 -c siplib.c -o siplib.o >/dev/null 2>&1
mv -f .libs/siplib.lo siplib.lo
/bin/sh ../libtool --mode=compile c++ -DHAVE_CONFIG_H -I. -I. -I..
-DSIP_QT_SUPPORT -I/usr/lib/qt-2.2.1/includ
e  -I/usr/X11R6/include -I/usr/local/include/python2.0  -fno-exceptions
-O2 -c qtlib.cpp
rm -f .libs/qtlib.lo
c++ -DHAVE_CONFIG_H -I. -I. -I.. -DSIP_QT_SUPPORT
-I/usr/lib/qt-2.2.1/include -I/usr/X11R6/include -I/usr/local
/include/python2.0 -fno-exceptions -O2 -c  -fPIC -DPIC qtlib.cpp -o
.libs/qtlib.lo
qtlib.cpp: In method `sipProxy::sipProxy()':
qtlib.cpp:49: `struct sipSlot' has no member named `weakSlot'
qtlib.cpp: In method `sipProxy::~sipProxy()':
qtlib.cpp:70: `struct sipSlot' has no member named `weakSlot'
qtlib.cpp:70: `struct sipSlot' has no member named `weakSlot'
qtlib.cpp:70: `struct sipSlot' has no member named `weakSlot'
qtlib.cpp:70: `struct sipSlot' has no member named `weakSlot'
qtlib.cpp: In function `int addSlotToPySigList(sipThisType *, char *,
PyObject *, char *)':
qtlib.cpp:454: `struct sipSlot' has no member named `weakSlot'
qtlib.cpp: In function `void removeSlotFromPySigList(sipThisType *, char
*, PyObject *, char *)':
qtlib.cpp:525: `struct sipSlot' has no member named `weakSlot'
qtlib.cpp:525: `struct sipSlot' has no member named `weakSlot'
qtlib.cpp:525: `struct sipSlot' has no member named `weakSlot'
qtlib.cpp:525: `struct sipSlot' has no member named `weakSlot'
qtlib.cpp: In function `int setSlot(sipSlot *, PyObject *, char *)':
qtlib.cpp:834: `struct sipSlot' has no member named `weakSlot'
qtlib.cpp:843: `struct sipSlot' has no member named `weakSlot'
make[2]: *** [qtlib.lo] Error 1
make[2]: Leaving directory `/opt/src/sip-2.4pre1/siplib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/opt/src/sip-2.4pre1'
make: *** [all-recursive-am] Error 2


The problem seems to be the code in sip.h:

 
typedef struct {
        char *name;             /* Name if a Qt or Python signal. */
        PyObject *pyobj;        /* Signal or Qt slot object. */
        sipPyMethod meth;       /* Python slot method, pyobj is NULL. */
#if PY_VERSION_HEX >= 0x02010000
        PyObject *weakSlot;     /* A weak reference to the slot. */
#endif
} sipSlot;

Which seems to leave weakSlot undefined for me. I tried to insert the same
#if into the rest of the code, but it seems to "comment out" too much
code.

	Chakie

--------------------+--------------------------------------------------------
Jan 'Chakie' Ekholm |     Balrog New Media    http://www.balrog.fi/
   Linux Inside     | I'm the blue screen of death, nobody hears your screams





More information about the PyQt mailing list