diff options
Diffstat (limited to 'src')
26 files changed, 135 insertions, 140 deletions
diff --git a/src/gui/dialogsmanager.h b/src/gui/dialogsmanager.h index 4dd4bcf7b..cc42c08d5 100644 --- a/src/gui/dialogsmanager.h +++ b/src/gui/dialogsmanager.h @@ -46,7 +46,7 @@ class DialogsManager final : public AttributeListener, static Window *openErrorDialog(const std::string &header, const std::string &message, - const Modal modal); + const Modal modal) RETURNS_NONNULL; void playerDeath() override final; diff --git a/src/gui/focushandler.cpp b/src/gui/focushandler.cpp index 41cea3a82..667cb81d0 100644 --- a/src/gui/focushandler.cpp +++ b/src/gui/focushandler.cpp @@ -339,6 +339,8 @@ void FocusHandler::distributeFocusGainedEvent(const Event &focusEvent) Widget *const sourceWidget = focusEvent.getSource(); + if (!sourceWidget) + return; std::list<FocusListener*> focusListeners = sourceWidget->getFocusListeners(); @@ -550,6 +552,8 @@ void FocusHandler::focusNone() void FocusHandler::distributeFocusLostEvent(const Event& focusEvent) { Widget *const sourceWidget = focusEvent.getSource(); + if (!sourceWidget) + return; std::list<FocusListener*> focusListeners = sourceWidget->getFocusListeners(); diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 91224b714..50a0a6a28 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -117,11 +117,11 @@ Gui::Gui() : mLastMouseDragButton(MouseButton::EMPTY), mWidgetWithMouseQueue(), mConfigListener(new GuiConfigListener(this)), - mGuiFont(), - mInfoParticleFont(), - mHelpFont(), - mSecureFont(), - mNpcFont(), + mGuiFont(nullptr), + mInfoParticleFont(nullptr), + mHelpFont(nullptr), + mSecureFont(nullptr), + mNpcFont(nullptr), mMouseCursors(nullptr), mMouseCursorAlpha(1.0F), mMouseInactivityTimer(0), @@ -455,6 +455,8 @@ void Gui::draw() { BLOCK_START("Gui::draw 1") Widget *const top = getTop(); + if (!top) + return; mGraphics->pushClipArea(top->getDimension()); if (isBatchDrawRenders(openGLMode)) @@ -661,7 +663,8 @@ void Gui::handleMouseMoved(const MouseInput &mouseInput) // mouse entered events. if (mFocusHandler->getModalMouseInputFocused() && widget == mFocusHandler->getModalMouseInputFocused() - && Widget::widgetExists(widget)) + && Widget::widgetExists(widget) && + widget) { int x, y; widget->getAbsolutePosition(x, y); @@ -742,6 +745,8 @@ void Gui::handleMousePressed(const MouseInput &mouseInput) if (mFocusHandler->getDraggedWidget()) sourceWidget = mFocusHandler->getDraggedWidget(); + if (!sourceWidget) + return; int sourceWidgetX; int sourceWidgetY; sourceWidget->getAbsolutePosition(sourceWidgetX, sourceWidgetY); @@ -1038,7 +1043,7 @@ void Gui::handleMouseReleased(const MouseInput &mouseInput) Widget *const oldWidget = sourceWidget; sourceWidget = mFocusHandler->getDraggedWidget(); - if (oldWidget != sourceWidget) + if (oldWidget && oldWidget != sourceWidget) { oldWidget->getAbsolutePosition(sourceWidgetX, sourceWidgetY); distributeMouseEvent(oldWidget, @@ -1049,6 +1054,8 @@ void Gui::handleMouseReleased(const MouseInput &mouseInput) } } + if (!sourceWidget) + return; sourceWidget->getAbsolutePosition(sourceWidgetX, sourceWidgetY); distributeMouseEvent(sourceWidget, MouseEventType::RELEASED, @@ -1165,13 +1172,16 @@ void Gui::handleMouseWheelMovedDown(const MouseInput& mouseInput) int sourceWidgetX = 0; int sourceWidgetY = 0; - sourceWidget->getAbsolutePosition(sourceWidgetX, sourceWidgetY); + if (sourceWidget) + { + sourceWidget->getAbsolutePosition(sourceWidgetX, sourceWidgetY); - distributeMouseEvent(sourceWidget, - MouseEventType::WHEEL_MOVED_DOWN, - mouseInput.getButton(), - mouseInput.getX(), - mouseInput.getY()); + distributeMouseEvent(sourceWidget, + MouseEventType::WHEEL_MOVED_DOWN, + mouseInput.getButton(), + mouseInput.getX(), + mouseInput.getY()); + } } void Gui::handleMouseWheelMovedUp(const MouseInput& mouseInput) @@ -1182,14 +1192,17 @@ void Gui::handleMouseWheelMovedUp(const MouseInput& mouseInput) if (mFocusHandler->getDraggedWidget()) sourceWidget = mFocusHandler->getDraggedWidget(); - int sourceWidgetX, sourceWidgetY; - sourceWidget->getAbsolutePosition(sourceWidgetX, sourceWidgetY); - - distributeMouseEvent(sourceWidget, - MouseEventType::WHEEL_MOVED_UP, - mouseInput.getButton(), - mouseInput.getX(), - mouseInput.getY()); + int sourceWidgetX; + int sourceWidgetY; + if (sourceWidget) + { + sourceWidget->getAbsolutePosition(sourceWidgetX, sourceWidgetY); + distributeMouseEvent(sourceWidget, + MouseEventType::WHEEL_MOVED_UP, + mouseInput.getButton(), + mouseInput.getX(), + mouseInput.getY()); + } } Widget* Gui::getWidgetAt(const int x, const int y) const @@ -1243,9 +1256,10 @@ void Gui::distributeKeyEvent(KeyEvent &event) const Widget* parent = event.getSource(); Widget* widget = parent; + if (!parent) + return; if (mFocusHandler->getModalFocused() && !widget->isModalFocused()) return; - if (mFocusHandler->getModalMouseInputFocused() && !widget->isModalMouseInputFocused()) { diff --git a/src/gui/gui.h b/src/gui/gui.h index 209c40749..ea9dae7ef 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -156,32 +156,32 @@ class Gui final /** * Return game font. */ - Font *getFont() const A_WARN_UNUSED + Font *getFont() const RETURNS_NONNULL A_WARN_UNUSED { return mGuiFont; } /** * Return help font. */ - Font *getHelpFont() const A_WARN_UNUSED + Font *getHelpFont() const RETURNS_NONNULL A_WARN_UNUSED { return mHelpFont; } /** * Return secure font. */ - Font *getSecureFont() const A_WARN_UNUSED + Font *getSecureFont() const RETURNS_NONNULL A_WARN_UNUSED { return mSecureFont; } /** * Return npc font. */ - Font *getNpcFont() const A_WARN_UNUSED + Font *getNpcFont() const RETURNS_NONNULL A_WARN_UNUSED { return mNpcFont; } /** * Return the Font used for "Info Particles", i.e. ones showing, what * you picked up, etc. */ - Font *getInfoParticleFont() const A_WARN_UNUSED + Font *getInfoParticleFont() const RETURNS_NONNULL A_WARN_UNUSED { return mInfoParticleFont; } /** @@ -257,7 +257,7 @@ class Gui final * OpenLayerGraphics, OpenGLGraphics, SDLGraphics * @since 0.1.0 */ - void setGraphics(Graphics *const graphics); + void setGraphics(Graphics *const graphics) A_NONNULL(2); /** * Gets the graphics object used for drawing. @@ -268,7 +268,7 @@ class Gui final * OpenLayerGraphics, OpenGLGraphics, SDLGraphics * @since 0.1.0 */ - Graphics* getGraphics() const A_WARN_UNUSED; + Graphics* getGraphics() const RETURNS_NONNULL A_WARN_UNUSED; /** * Sets the input object to use for input handling. diff --git a/src/gui/models/beingslistmodel.h b/src/gui/models/beingslistmodel.h index 7e8caced2..4d587d763 100644 --- a/src/gui/models/beingslistmodel.h +++ b/src/gui/models/beingslistmodel.h @@ -43,7 +43,7 @@ class BeingsListModel final : public AvatarListModel mMembers.clear(); } - std::vector<Avatar*> *getMembers() + std::vector<Avatar*> *getMembers() RETURNS_NONNULL A_WARN_UNUSED { return &mMembers; } diff --git a/src/gui/models/colormodel.cpp b/src/gui/models/colormodel.cpp index f7b18d300..a31b245c4 100644 --- a/src/gui/models/colormodel.cpp +++ b/src/gui/models/colormodel.cpp @@ -51,7 +51,7 @@ std::string ColorModel::getElementAt(int i) const ColorPair *ColorModel::getColorAt(const int i) const { if (i >= static_cast<int>(mColors.size()) || i < 0) - return nullptr; + return &mColors[0]; return &mColors[i]; } diff --git a/src/gui/models/colormodel.h b/src/gui/models/colormodel.h index 81d8d8cbe..9537d7766 100644 --- a/src/gui/models/colormodel.h +++ b/src/gui/models/colormodel.h @@ -45,7 +45,8 @@ class ColorModel final : public ListModel std::string getElementAt(int i) override final A_WARN_UNUSED; - virtual const ColorPair *getColorAt(const int i) const A_WARN_UNUSED; + const ColorPair *getColorAt(const int i) + const RETURNS_NONNULL A_WARN_UNUSED; StringVect &getNames() A_WARN_UNUSED { return mNames; } @@ -53,10 +54,12 @@ class ColorModel final : public ListModel size_t size() A_WARN_UNUSED { return mNames.size(); } - void add(const std::string &name, const Color *const color1, + void add(const std::string &name, + const Color *const color1, const Color *const color2); - static ColorModel *createDefault(const Widget2 *const widget); + static ColorModel *createDefault(const Widget2 *const widget) + RETURNS_NONNULL; protected: StringVect mNames; diff --git a/src/gui/widgets/colorpage.cpp b/src/gui/widgets/colorpage.cpp index 6897399d5..d50f49968 100644 --- a/src/gui/widgets/colorpage.cpp +++ b/src/gui/widgets/colorpage.cpp @@ -36,8 +36,7 @@ ColorPage::ColorPage(const Widget2 *const widget, mItemPadding = mSkin ? mSkin->getOption("itemPadding") : 1; mRowHeight = 13; const Font *const font = getFont(); - if (font) - mRowHeight = font->getHeight() + 2 * mItemPadding; + mRowHeight = font->getHeight() + 2 * mItemPadding; if (mListModel) { setHeight(getRowHeight() * mListModel->getNumberOfElements() diff --git a/src/gui/widgets/itemcontainer.cpp b/src/gui/widgets/itemcontainer.cpp index 7e9049aa0..17c0d9cf1 100644 --- a/src/gui/widgets/itemcontainer.cpp +++ b/src/gui/widgets/itemcontainer.cpp @@ -616,18 +616,21 @@ void ItemContainer::mouseReleased(MouseEvent &event) #endif { inventory = PlayerInfo::getInventory(); - const Item *const item = inventory->getItem(dragDrop.getTag()); - if (item && !PlayerInfo::isItemProtected(item->getId())) + if (inventory) { - mInventory->addItem(item->getId(), item->getType(), - 1, - 1, - item->getColor(), - item->getIdentified(), - item->getDamaged(), - item->getFavorite(), - Equipm_false, - Equipped_false); + const Item *const item = inventory->getItem(dragDrop.getTag()); + if (item && !PlayerInfo::isItemProtected(item->getId())) + { + mInventory->addItem(item->getId(), item->getType(), + 1, + 1, + item->getColor(), + item->getIdentified(), + item->getDamaged(), + item->getFavorite(), + Equipm_false, + Equipped_false); + } } return; } @@ -638,9 +641,12 @@ void ItemContainer::mouseReleased(MouseEvent &event) #endif { inventory = PlayerInfo::getInventory(); - const Item *const item = inventory->getItem(dragDrop.getTag()); - if (item) - mInventory->removeItemAt(dragDrop.getTag()); + if (inventory) + { + const Item *const item = inventory->getItem(dragDrop.getTag()); + if (item) + mInventory->removeItemAt(dragDrop.getTag()); + } return; } diff --git a/src/gui/widgets/label.cpp b/src/gui/widgets/label.cpp index 722e1bbe9..8f0d49887 100644 --- a/src/gui/widgets/label.cpp +++ b/src/gui/widgets/label.cpp @@ -99,11 +99,8 @@ Label::Label(const Widget2 *const widget, mTextChanged(true) { const Font *const font = getFont(); - if (font) - { - setWidth(font->getWidth(caption)); - setHeight(font->getHeight()); - } + setWidth(font->getWidth(caption)); + setHeight(font->getHeight()); init(); } diff --git a/src/gui/widgets/listbox.cpp b/src/gui/widgets/listbox.cpp index 85e1a5b8f..6204102c4 100644 --- a/src/gui/widgets/listbox.cpp +++ b/src/gui/widgets/listbox.cpp @@ -122,10 +122,7 @@ ListBox::ListBox(const Widget2 *const widget, } const Font *const font = getFont(); - if (font) - mRowHeight = font->getHeight() + 2 * mItemPadding; - else - mRowHeight = 13; + mRowHeight = font->getHeight() + 2 * mItemPadding; } void ListBox::postInit() diff --git a/src/gui/widgets/scrollarea.cpp b/src/gui/widgets/scrollarea.cpp index 1e43b31b5..df05ec3fa 100644 --- a/src/gui/widgets/scrollarea.cpp +++ b/src/gui/widgets/scrollarea.cpp @@ -1276,7 +1276,7 @@ void ScrollArea::setScrollbarWidth(const int width) void ScrollArea::showWidgetPart(Widget *const widget, const Rect &area) { const Widget *const content = getContent(); - if (widget != content) + if (widget != content || !content) return; BasicContainer::showWidgetPart(widget, area); diff --git a/src/gui/widgets/setupitem.h b/src/gui/widgets/setupitem.h index bc6443bb3..0853c6f19 100644 --- a/src/gui/widgets/setupitem.h +++ b/src/gui/widgets/setupitem.h @@ -71,7 +71,7 @@ class SetupItem notfinal : public ActionListener, Widget *getWidget() const A_WARN_UNUSED { return mWidget; } - Configuration *getConfig() const A_WARN_UNUSED; + Configuration *getConfig() const RETURNS_NONNULL A_WARN_UNUSED; virtual std::string getActionEventId() const A_WARN_UNUSED; diff --git a/src/gui/widgets/tabbedarea.cpp b/src/gui/widgets/tabbedarea.cpp index b6b0eceb4..33f07efe8 100644 --- a/src/gui/widgets/tabbedarea.cpp +++ b/src/gui/widgets/tabbedarea.cpp @@ -455,28 +455,25 @@ void TabbedArea::widgetResized(const Event &event A_UNUSED) - mWidgetContainer->getY() - widgetFrameSize; Widget *const w = getCurrentWidget(); - if (w) + ScrollArea *const scr = dynamic_cast<ScrollArea *const>(w); + if (scr) { - ScrollArea *const scr = dynamic_cast<ScrollArea *const>(w); - if (scr) + if (mFollowDownScroll && height != 0) { - if (mFollowDownScroll && height != 0) + const Rect &rect = w->getDimension(); + if (rect.height != 0 && rect.height > height + 2) { - const Rect &rect = w->getDimension(); - if (rect.height != 0 && rect.height > height + 2) + if (scr->getVerticalScrollAmount() + >= scr->getVerticalMaxScroll() - 2 + && scr->getVerticalScrollAmount() + <= scr->getVerticalMaxScroll() + 2) { - if (scr->getVerticalScrollAmount() - >= scr->getVerticalMaxScroll() - 2 - && scr->getVerticalScrollAmount() - <= scr->getVerticalMaxScroll() + 2) - { - const int newScroll = scr->getVerticalScrollAmount() - + rect.height - height; - w->setSize(mWidgetContainer->getWidth() - frameSize, - mWidgetContainer->getHeight() - frameSize); - if (newScroll) - scr->setVerticalScrollAmount(newScroll); - } + const int newScroll = scr->getVerticalScrollAmount() + + rect.height - height; + w->setSize(mWidgetContainer->getWidth() - frameSize, + mWidgetContainer->getHeight() - frameSize); + if (newScroll) + scr->setVerticalScrollAmount(newScroll); } } } diff --git a/src/gui/widgets/tabs/socialfriendstab.h b/src/gui/widgets/tabs/socialfriendstab.h index e09068d8d..5f9038f81 100644 --- a/src/gui/widgets/tabs/socialfriendstab.h +++ b/src/gui/widgets/tabs/socialfriendstab.h @@ -74,8 +74,6 @@ class SocialFriendsTab final : public SocialTab return; std::vector<Avatar*> *const avatars = mBeings->getMembers(); - if (!avatars) - return; std::vector<Avatar*>::iterator ia = avatars->begin(); while (ia != avatars->end()) diff --git a/src/gui/widgets/tabs/socialnavigationtab.h b/src/gui/widgets/tabs/socialnavigationtab.h index b649f2e2a..b4ad01128 100644 --- a/src/gui/widgets/tabs/socialnavigationtab.h +++ b/src/gui/widgets/tabs/socialnavigationtab.h @@ -170,7 +170,7 @@ class SocialNavigationTab final : public SocialTab return; std::vector<Avatar*> *const avatars = mBeings->getMembers(); - if (!avatars || avatars->size() <= static_cast<size_t>(num)) + if (avatars->size() <= static_cast<size_t>(num)) return; const Avatar *const ava = avatars->at(num); @@ -184,8 +184,6 @@ class SocialNavigationTab final : public SocialTab return; std::vector<Avatar*> *const avatars = mBeings->getMembers(); - if (!avatars) - return; const Map *const map = socialWindow->getMap(); if (!map) @@ -220,9 +218,6 @@ class SocialNavigationTab final : public SocialTab return -1; std::vector<Avatar*> *const avatars = mBeings->getMembers(); - if (!avatars) - return -1; - const Map *const map = socialWindow->getMap(); if (!map) return -1; @@ -255,10 +250,6 @@ class SocialNavigationTab final : public SocialTab return; std::vector<Avatar*> *const avatars = mBeings->getMembers(); - - if (!avatars) - return; - const MapItem *const portal = map->findPortalXY(x, y); if (!portal) return; @@ -288,10 +279,6 @@ class SocialNavigationTab final : public SocialTab return; std::vector<Avatar*> *const avatars = mBeings->getMembers(); - - if (!avatars) - return; - std::vector<Avatar*>::iterator i = avatars->begin(); const std::vector<Avatar*>::iterator i_end = avatars->end(); diff --git a/src/gui/widgets/tabs/socialplayerstab.h b/src/gui/widgets/tabs/socialplayerstab.h index a7634014b..c0310015f 100644 --- a/src/gui/widgets/tabs/socialplayerstab.h +++ b/src/gui/widgets/tabs/socialplayerstab.h @@ -119,9 +119,6 @@ class SocialPlayersTab final : public SocialTab Avatar* findAvatarbyName(const std::string &name) { std::vector<Avatar*> *const avatars = mBeings->getMembers(); - if (!avatars) - return nullptr; - Avatar *ava = nullptr; std::vector<Avatar*>::const_iterator i = avatars->begin(); const std::vector<Avatar*>::const_iterator i_end = avatars->end(); @@ -141,9 +138,6 @@ class SocialPlayersTab final : public SocialTab void getPlayersAvatars() { std::vector<Avatar*> *const avatars = mBeings->getMembers(); - if (!avatars) - return; - if (actorManager) { StringVect names; diff --git a/src/gui/widgets/tabstrip.cpp b/src/gui/widgets/tabstrip.cpp index d3f334e8a..025eb7ac7 100644 --- a/src/gui/widgets/tabstrip.cpp +++ b/src/gui/widgets/tabstrip.cpp @@ -63,6 +63,8 @@ void TabStrip::action(const ActionEvent &event) { Widget *const widget = event.getSource(); Button *const button = static_cast<Button*>(widget); + if (!button) + return; if (button->isPressed2()) { FOR_EACH (WidgetListConstIterator, iter, mWidgets) diff --git a/src/gui/widgets/widget.h b/src/gui/widgets/widget.h index c5573b404..840e7ce31 100644 --- a/src/gui/widgets/widget.h +++ b/src/gui/widgets/widget.h @@ -682,7 +682,7 @@ class Widget notfinal : public Widget2 * @see setFont, setGlobalFont * @since 0.1.0 */ - Font *getFont() const A_WARN_UNUSED; + Font *getFont() const RETURNS_NONNULL A_WARN_UNUSED; /** * Sets the global font to be used by default for all widgets. @@ -1027,7 +1027,7 @@ class Widget notfinal : public Widget2 void windowResized(); - static Widget *callPostInit(Widget *const widget); + static Widget *callPostInit(Widget *const widget) RETURNS_NONNULL; virtual void postInit() { } diff --git a/src/gui/widgets/window.cpp b/src/gui/widgets/window.cpp index 2316af653..73355e3fc 100644 --- a/src/gui/widgets/window.cpp +++ b/src/gui/widgets/window.cpp @@ -641,11 +641,14 @@ void Window::widgetResized(const Event &event A_UNUSED) if (showClose) { const Image *const button = mSkin->getCloseImage(false); - const int buttonWidth = button->getWidth(); - mCloseRect.x = mDimension.width - buttonWidth - mClosePadding; - mCloseRect.y = mClosePadding; - mCloseRect.width = buttonWidth; - mCloseRect.height = button->getHeight(); + if (button) + { + const int buttonWidth = button->getWidth(); + mCloseRect.x = mDimension.width - buttonWidth - mClosePadding; + mCloseRect.y = mClosePadding; + mCloseRect.width = buttonWidth; + mCloseRect.height = button->getHeight(); + } } if (mStickyButton) { diff --git a/src/gui/windows/buydialog.cpp b/src/gui/windows/buydialog.cpp index 3b3657272..84a7a1182 100644 --- a/src/gui/windows/buydialog.cpp +++ b/src/gui/windows/buydialog.cpp @@ -488,6 +488,8 @@ void BuyDialog::action(const ActionEvent &event) else if (eventId == "buy" && mAmountItems > 0 && mAmountItems <= mMaxItems) { ShopItem *const item = mShopItems->at(selectedItem); + if (!item) + return; if (mNpcId == fromInt(Items, BeingId)) { adminHandler->createItems(item->getId(), @@ -544,13 +546,10 @@ void BuyDialog::action(const ActionEvent &event) if (tradeWindow) #endif { - if (item) - { - buySellHandler->sendBuyRequest(mNick, - item, mAmountItems); - tradeWindow->addAutoMoney(mNick, - item->getPrice() * mAmountItems); - } + buySellHandler->sendBuyRequest(mNick, + item, mAmountItems); + tradeWindow->addAutoMoney(mNick, + item->getPrice() * mAmountItems); } } } diff --git a/src/gui/windows/chatwindow.cpp b/src/gui/windows/chatwindow.cpp index 3f26cc4dc..f7a101a44 100644 --- a/src/gui/windows/chatwindow.cpp +++ b/src/gui/windows/chatwindow.cpp @@ -692,11 +692,11 @@ void ChatWindow::mousePressed(MouseEvent &event) { if (popupMenu) { - Tab *const tab = mChatTabs->getSelectedTab(); - if (tab) + ChatTab *const cTab = dynamic_cast<ChatTab*>( + mChatTabs->getSelectedTab()); + if (cTab) { event.consume(); - ChatTab *const cTab = dynamic_cast<ChatTab*>(tab); if (inputManager.isActionActive(InputAction::CHAT_MOD)) { inputManager.executeChatCommand( @@ -2163,11 +2163,14 @@ void ChatWindow::showGMTab() void ChatWindow::joinRoom(const bool isJoin) { Tab *const tab = mChatTabs->getTabByIndex(0); - std::string name; - if (isJoin) - name = PlayerInfo::getRoomName(); - else - name = _("General"); - tab->setCaption(name); + if (tab) + { + std::string name; + if (isJoin) + name = PlayerInfo::getRoomName(); + else + name = _("General"); + tab->setCaption(name); + } } #endif diff --git a/src/gui/windows/minimap.cpp b/src/gui/windows/minimap.cpp index 9e2cb4b81..502ebf91a 100644 --- a/src/gui/windows/minimap.cpp +++ b/src/gui/windows/minimap.cpp @@ -393,7 +393,7 @@ void Minimap::draw2(Graphics *const graphics) const PartyMember *const m = party->getMember( localPlayer->getName()); const Party::MemberList *const members = party->getMembers(); - if (m && members) + if (m) { const std::string curMap = m->getMap(); Party::MemberList::const_iterator it = members->begin(); diff --git a/src/gui/windows/skilldialog.cpp b/src/gui/windows/skilldialog.cpp index 8997220f1..89b614e8d 100644 --- a/src/gui/windows/skilldialog.cpp +++ b/src/gui/windows/skilldialog.cpp @@ -337,7 +337,7 @@ void SkillDialog::loadXmlFile(const std::string &fileName) ? 0 : XML::getProperty(node, "level", 0); SkillData *data = skill->getData(level); if (!data) - data = new SkillData(); + data = new SkillData; data->name = name; data->setIcon(icon); diff --git a/src/gui/windows/statuswindow.cpp b/src/gui/windows/statuswindow.cpp index ed7438736..5f8df4ef7 100644 --- a/src/gui/windows/statuswindow.cpp +++ b/src/gui/windows/statuswindow.cpp @@ -633,7 +633,7 @@ std::string StatusWindow::translateLetter(const char *const letters) { char buf[2]; char *const str = gettext(letters); - if (strlen(str) != 3) + if (!str || strlen(str) != 3) return letters; buf[0] = str[1]; diff --git a/src/gui/windows/textdialog.cpp b/src/gui/windows/textdialog.cpp index 642d574cc..0d74c95e5 100644 --- a/src/gui/windows/textdialog.cpp +++ b/src/gui/windows/textdialog.cpp @@ -68,18 +68,10 @@ TextDialog::TextDialog(const std::string &restrict title, place(2, 2, mOkButton); place(3, 2, cancelButton); - const Font *const font = getFont(); - if (font) - { - int width = font->getWidth(title); - if (width < textLabel->getWidth()) - width = textLabel->getWidth(); - reflowLayout(static_cast<int>(width + 20)); - } - else - { - reflowLayout(static_cast<int>(textLabel->getWidth() + 20)); - } + int width = getFont()->getWidth(title); + if (width < textLabel->getWidth()) + width = textLabel->getWidth(); + reflowLayout(static_cast<int>(width + 20)); } void TextDialog::postInit() |