Better sanitization of pointers

This commit is contained in:
ZeldaZach
2025-01-17 00:05:08 -05:00
parent ee938342f3
commit 7b94d5d501

View File

@@ -60,6 +60,10 @@ void StackZone::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*opti
void StackZone::handleDropEvent(const QList<CardDragItem *> &dragItems, CardZone *startZone, const QPoint &dropPoint) void StackZone::handleDropEvent(const QList<CardDragItem *> &dragItems, CardZone *startZone, const QPoint &dropPoint)
{ {
if (!startZone) {
return;
}
Command_MoveCard cmd; Command_MoveCard cmd;
cmd.set_start_player_id(startZone->getPlayer()->getId()); cmd.set_start_player_id(startZone->getPlayer()->getId());
cmd.set_start_zone(startZone->getName().toStdString()); cmd.set_start_zone(startZone->getName().toStdString());
@@ -74,7 +78,7 @@ void StackZone::handleDropEvent(const QList<CardDragItem *> &dragItems, CardZone
cards.at(0)->boundingRect().height(), true)); cards.at(0)->boundingRect().height(), true));
} }
if (startZone == this) { if (startZone == this) {
if (cards.at(index)->getId() == dragItems.at(0)->getId()) { if (dragItems.at(0) != nullptr && cards.at(index)->getId() == dragItems.at(0)->getId()) {
return; return;
} }
} }
@@ -82,7 +86,9 @@ void StackZone::handleDropEvent(const QList<CardDragItem *> &dragItems, CardZone
cmd.set_y(0); cmd.set_y(0);
for (CardDragItem *item : dragItems) { for (CardDragItem *item : dragItems) {
cmd.mutable_cards_to_move()->add_card()->set_card_id(item->getId()); if (item) {
cmd.mutable_cards_to_move()->add_card()->set_card_id(item->getId());
}
} }
player->sendGameCommand(cmd); player->sendGameCommand(cmd);