sanity checks; server crash fix

This commit is contained in:
Max-Wilhelm Bruker 2009-12-08 00:46:38 +01:00
parent a8e9501dad
commit 0603b3dafd
3 changed files with 9 additions and 2 deletions

View file

@ -99,6 +99,10 @@ void CardZone::addCard(CardItem *card, bool reorganize, int x, int y)
CardItem *CardZone::getCard(int cardId, const QString &cardName) CardItem *CardZone::getCard(int cardId, const QString &cardName)
{ {
CardItem *c = cards.findCard(cardId, false); CardItem *c = cards.findCard(cardId, false);
if (!c) {
qDebug() << "CardZone::getCard: card id=" << cardId << "not found";
return 0;
}
// If the card's id is -1, this zone is invisible, // If the card's id is -1, this zone is invisible,
// so we need to give the card an id and a name as it comes out. // so we need to give the card an id and a name as it comes out.
// It can be assumed that in an invisible zone, all cards are equal. // It can be assumed that in an invisible zone, all cards are equal.

View file

@ -563,6 +563,10 @@ void Player::eventSetCardAttr(Event_SetCardAttr *event)
emit logSetTapped(this, QString("-1"), event->getAttrValue() == "1"); emit logSetTapped(this, QString("-1"), event->getAttrValue() == "1");
} else { } else {
CardItem *card = zone->getCard(event->getCardId(), QString()); CardItem *card = zone->getCard(event->getCardId(), QString());
if (!card) {
qDebug() << "Player::eventSetCardAttr: card id=" << event->getCardId() << "not found";
return;
}
setCardAttrHelper(card, event->getAttrName(), event->getAttrValue(), false); setCardAttrHelper(card, event->getAttrName(), event->getAttrValue(), false);
} }
} }

View file

@ -65,8 +65,7 @@ void Server::closeOldSession(const QString &playerName)
} }
if (session) { if (session) {
qDebug() << "found"; qDebug() << "found";
removeClient(session); delete session; // ~Server_ProtocolHandler() will call Server::removeClient
delete session;
} }
} }