[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