Segmentation Fault durch QObject::sender()
Verfasst: 21. Juni 2008 11:01
Hallo,
Zuerst ein mal die Codes:
In einer Serverapplikation wird mit nextPendingConnection ein QSocket geholt, dieses wird verbunden und manipuliert, unter anderem auch mit diesem connect:
wenn jetzt der slot disconnectClient() aus dem signal disconnected aufgerufen wird, muss ich den zeiger auf das QTcpSocket kennen.
entweder so:
oder so
welches ich nehme ist egal, denn das resultat ist das gleiche:
irgendwann später, also nicht direkt beim aufruf gibt es ein segmentation fault.
also ich habe den debugger angeworfen und dann immer weiter geklickt und dann macht der die qt-internen sachen und irgendwann gibts ein segmentation fault. per kommentieren und neukompilieren hab ich rausgefunden, dass es dann wohl an dem QObject::sender() liegen muss.
weiß von euch einer Rat was falsch sein könnte?
Zuerst ein mal die Codes:
In einer Serverapplikation wird mit nextPendingConnection ein QSocket geholt, dieses wird verbunden und manipuliert, unter anderem auch mit diesem connect:
Code: Alles auswählen
connect( tmpSocket, SIGNAL ( disconnected() ), this, SLOT( disconnectClient() ) );entweder so:
Code: Alles auswählen
QObject* sender = const_cast<QObject*> ( QObject::sender() );
QTcpSocket *socket = static_cast<QTcpSocket*> ( sender );
Code: Alles auswählen
QTcpSocket *socket = (QTcpSocket*)QObject::sender();
irgendwann später, also nicht direkt beim aufruf gibt es ein segmentation fault.
also ich habe den debugger angeworfen und dann immer weiter geklickt und dann macht der die qt-internen sachen und irgendwann gibts ein segmentation fault. per kommentieren und neukompilieren hab ich rausgefunden, dass es dann wohl an dem QObject::sender() liegen muss.
weiß von euch einer Rat was falsch sein könnte?