Fixed some compiler warnings from clang.

Refactored Stack::replace() to use Stack::applyAll() lambda instead.
This commit is contained in:
Stephen Anthony 2018-02-06 15:11:16 -03:30
parent 91d5df8f8f
commit 2874a7c504
16 changed files with 28 additions and 51 deletions

View File

@ -44,20 +44,11 @@ class FixedStack
bool full() const { return _size >= CAPACITY; } bool full() const { return _size >= CAPACITY; }
T top() const { return _stack[_size - 1]; } T top() const { return _stack[_size - 1]; }
T get(uInt32 pos) { return _stack[pos]; }; T get(uInt32 pos) { return _stack[pos]; }
void push(const T& x) { _stack[_size++] = x; } void push(const T& x) { _stack[_size++] = x; }
T pop() { return std::move(_stack[--_size]); } T pop() { return std::move(_stack[--_size]); }
uInt32 size() const { return _size; } uInt32 size() const { return _size; }
void replace(const T& oldItem, const T& newItem) {
for(uInt32 i = 0; i < _size; ++i) {
if(_stack[i] == oldItem) {
_stack[i] = newItem;
return;
}
}
}
// Apply the given function to every item in the stack // Apply the given function to every item in the stack
// We do it this way so the stack API can be preserved, // We do it this way so the stack API can be preserved,
// and no access to individual elements is allowed outside // and no access to individual elements is allowed outside

View File

@ -26,8 +26,7 @@ PaddleWidget::PaddleWidget(GuiObject* boss, const GUI::Font& font,
bool leftport = isLeftPort(); bool leftport = isLeftPort();
const string& label = getHeader(); const string& label = getHeader();
const int fontWidth = font.getMaxCharWidth(), const int fontHeight = font.getFontHeight(),
fontHeight = font.getFontHeight(),
lineHeight = font.getLineHeight(); lineHeight = font.getLineHeight();
int xpos = x, ypos = y, lwidth = font.getStringWidth("Right (Paddles)"); int xpos = x, ypos = y, lwidth = font.getStringWidth("Right (Paddles)");

View File

@ -268,14 +268,12 @@ void FBSurface::frameRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h,
break; break;
case FrameStyle::Dashed: case FrameStyle::Dashed:
uInt32 i, skip, lwidth = 1; for(uInt32 i = x; i < x + w; i += 2)
for(i = x; i < x + w; i += 2)
{ {
hLine(i, y, i, color); hLine(i, y, i, color);
hLine(i, y + h - 1, i, color); hLine(i, y + h - 1, i, color);
} }
for(i = y; i < y + h; i += 2) for(uInt32 i = y; i < y + h; i += 2)
{ {
vLine(x, i, i, color); vLine(x, i, i, color);
vLine(x + w - 1, i, i, color); vLine(x + w - 1, i, i, color);

View File

@ -42,9 +42,7 @@ AudioDialog::AudioDialog(OSystem& osystem, DialogContainer& parent,
const int INDENT = 20; const int INDENT = 20;
const int lineHeight = font.getLineHeight(), const int lineHeight = font.getLineHeight(),
fontWidth = font.getMaxCharWidth(), fontWidth = font.getMaxCharWidth(),
fontHeight = font.getFontHeight(), fontHeight = font.getFontHeight();
buttonWidth = font.getStringWidth("Defaults") + 20,
buttonHeight = font.getLineHeight() + 4;
int xpos, ypos; int xpos, ypos;
int lwidth = font.getStringWidth("Sample Size (*) "), int lwidth = font.getStringWidth("Sample Size (*) "),
pwidth = font.getStringWidth("512 bytes"); pwidth = font.getStringWidth("512 bytes");

View File

@ -33,10 +33,7 @@ ComboDialog::ComboDialog(GuiObject* boss, const GUI::Font& font,
myComboEvent(Event::NoType) myComboEvent(Event::NoType)
{ {
const int lineHeight = font.getLineHeight(), const int lineHeight = font.getLineHeight(),
fontWidth = font.getMaxCharWidth(), fontWidth = font.getMaxCharWidth();
fontHeight = font.getFontHeight(),
buttonWidth = font.getStringWidth("Defaults") + 20,
buttonHeight = font.getLineHeight() + 4;
int xpos, ypos; int xpos, ypos;
WidgetArray wid; WidgetArray wid;

View File

@ -48,9 +48,6 @@
Dialog::Dialog(OSystem& instance, DialogContainer& parent, const GUI::Font& font, const string& title, Dialog::Dialog(OSystem& instance, DialogContainer& parent, const GUI::Font& font, const string& title,
int x, int y, int w, int h) int x, int y, int w, int h)
: GuiObject(instance, parent, *this, x, y, w, h), : GuiObject(instance, parent, *this, x, y, w, h),
_font(&font),
_title(title),
_th(0),
_mouseWidget(nullptr), _mouseWidget(nullptr),
_focusedWidget(nullptr), _focusedWidget(nullptr),
_dragWidget(nullptr), _dragWidget(nullptr),
@ -58,6 +55,9 @@ Dialog::Dialog(OSystem& instance, DialogContainer& parent, const GUI::Font& font
_cancelWidget(nullptr), _cancelWidget(nullptr),
_visible(false), _visible(false),
_processCancel(false), _processCancel(false),
_title(title),
_th(0),
_font(&font),
_surface(nullptr), _surface(nullptr),
_tabID(0), _tabID(0),
_flags(WIDGET_ENABLED | WIDGET_BORDER | WIDGET_CLEARBG) _flags(WIDGET_ENABLED | WIDGET_BORDER | WIDGET_CLEARBG)
@ -68,10 +68,6 @@ Dialog::Dialog(OSystem& instance, DialogContainer& parent, const GUI::Font& font
Dialog::Dialog(OSystem& instance, DialogContainer& parent, Dialog::Dialog(OSystem& instance, DialogContainer& parent,
int x, int y, int w, int h) int x, int y, int w, int h)
: GuiObject(instance, parent, *this, x, y, w, h), : GuiObject(instance, parent, *this, x, y, w, h),
_font(nullptr),
_title(""),
_th(0),
_fh(0),
_mouseWidget(nullptr), _mouseWidget(nullptr),
_focusedWidget(nullptr), _focusedWidget(nullptr),
_dragWidget(nullptr), _dragWidget(nullptr),
@ -79,6 +75,10 @@ Dialog::Dialog(OSystem& instance, DialogContainer& parent,
_cancelWidget(nullptr), _cancelWidget(nullptr),
_visible(false), _visible(false),
_processCancel(false), _processCancel(false),
_title(""),
_th(0),
_font(nullptr),
_fh(0),
_surface(nullptr), _surface(nullptr),
_tabID(0), _tabID(0),
_flags(WIDGET_ENABLED | WIDGET_BORDER | WIDGET_CLEARBG) _flags(WIDGET_ENABLED | WIDGET_BORDER | WIDGET_CLEARBG)
@ -326,8 +326,8 @@ void Dialog::drawDialog()
{ {
// dialog is still on top if e.g a ContextMenu is opened // dialog is still on top if e.g a ContextMenu is opened
bool onTop = parent().myDialogStack.top() == this bool onTop = parent().myDialogStack.top() == this
|| parent().myDialogStack.get(parent().myDialogStack.size() - 2) == this || (parent().myDialogStack.get(parent().myDialogStack.size() - 2) == this
&& !parent().myDialogStack.top()->hasTitle(); && !parent().myDialogStack.top()->hasTitle());
if(_flags & WIDGET_CLEARBG) if(_flags & WIDGET_CLEARBG)
{ {

View File

@ -47,7 +47,6 @@ GameInfoDialog::GameInfoDialog(
const int lineHeight = font.getLineHeight(), const int lineHeight = font.getLineHeight(),
fontWidth = font.getMaxCharWidth(), fontWidth = font.getMaxCharWidth(),
fontHeight = font.getFontHeight(), fontHeight = font.getFontHeight(),
buttonWidth = font.getStringWidth("Defaults") + 20,
buttonHeight = font.getLineHeight() + 4; buttonHeight = font.getLineHeight() + 4;
const int vBorder = 8; const int vBorder = 8;
const int hBorder = 8; const int hBorder = 8;

View File

@ -36,7 +36,6 @@ GlobalPropsDialog::GlobalPropsDialog(GuiObject* boss, const GUI::Font& font)
const int lineHeight = font.getLineHeight(), const int lineHeight = font.getLineHeight(),
fontWidth = font.getMaxCharWidth(), fontWidth = font.getMaxCharWidth(),
fontHeight = font.getFontHeight(), fontHeight = font.getFontHeight(),
buttonWidth = font.getStringWidth("Defaults") + 20,
buttonHeight = font.getLineHeight() + 4; buttonHeight = font.getLineHeight() + 4;
int xpos, ypos; int xpos, ypos;
int lwidth = font.getStringWidth("Right Difficulty "), int lwidth = font.getStringWidth("Right Difficulty "),

View File

@ -45,7 +45,6 @@ InputDialog::InputDialog(OSystem& osystem, DialogContainer& parent,
{ {
const int lineHeight = font.getLineHeight(), const int lineHeight = font.getLineHeight(),
fontWidth = font.getMaxCharWidth(), fontWidth = font.getMaxCharWidth(),
buttonWidth = font.getStringWidth("Defaults") + 20,
buttonHeight = font.getLineHeight() + 4; buttonHeight = font.getLineHeight() + 4;
const int vBorder = 4; const int vBorder = 4;
int xpos, ypos, tabID; int xpos, ypos, tabID;

View File

@ -263,11 +263,6 @@ void TabWidget::drawWidget(bool hilite)
FBSurface& s = dialog().surface(); FBSurface& s = dialog().surface();
const int left1 = _x + 1;
const int right1 = _x + kTabLeftOffset + _activeTab * (_tabWidth + kTabSpacing);
const int left2 = right1 + _tabWidth;
const int right2 = _x + _w - 2;
// Iterate over all tabs and draw them // Iterate over all tabs and draw them
int i, x = _x + kTabLeftOffset; int i, x = _x + kTabLeftOffset;
for (i = 0; i < int(_tabs.size()); ++i) for (i = 0; i < int(_tabs.size()); ++i)

View File

@ -47,7 +47,7 @@ void TimeMachine::requestResize()
{ {
myWidth = newWidth; myWidth = newWidth;
Dialog* oldPtr = myBaseDialog; Dialog* oldPtr = myBaseDialog;
Int32 enterWinds = ((TimeMachineDialog*)myBaseDialog)->getEnterWinds(); Int32 enterWinds = static_cast<TimeMachineDialog*>(myBaseDialog)->getEnterWinds();
delete myBaseDialog; delete myBaseDialog;
myBaseDialog = new TimeMachineDialog(myOSystem, *this, myWidth); myBaseDialog = new TimeMachineDialog(myOSystem, *this, myWidth);
setEnterWinds(enterWinds); setEnterWinds(enterWinds);
@ -55,12 +55,17 @@ void TimeMachine::requestResize()
// Update the container stack; it may contain a reference to the old pointer // Update the container stack; it may contain a reference to the old pointer
if(oldPtr != newPtr) if(oldPtr != newPtr)
myDialogStack.replace(oldPtr, newPtr); {
myDialogStack.applyAll([&oldPtr,&newPtr](Dialog*& d){
if(d == oldPtr)
d = newPtr;
});
}
} }
} }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void TimeMachine::setEnterWinds(Int32 numWinds) void TimeMachine::setEnterWinds(Int32 numWinds)
{ {
((TimeMachineDialog*)myBaseDialog)->setEnterWinds(numWinds); static_cast<TimeMachineDialog*>(myBaseDialog)->setEnterWinds(numWinds);
} }

View File

@ -32,8 +32,8 @@ class TimeMachineDialog : public Dialog
virtual ~TimeMachineDialog() = default; virtual ~TimeMachineDialog() = default;
/** set/get number of winds when entering the dialog */ /** set/get number of winds when entering the dialog */
void setEnterWinds(Int32 numWinds) { _enterWinds = numWinds; }; void setEnterWinds(Int32 numWinds) { _enterWinds = numWinds; }
Int32 getEnterWinds() { return _enterWinds; }; Int32 getEnterWinds() { return _enterWinds; }
private: private:
void loadConfig() override; void loadConfig() override;

View File

@ -41,7 +41,6 @@ UIDialog::UIDialog(OSystem& osystem, DialogContainer& parent,
const int lineHeight = font.getLineHeight(), const int lineHeight = font.getLineHeight(),
fontWidth = font.getMaxCharWidth(), fontWidth = font.getMaxCharWidth(),
fontHeight = font.getFontHeight(), fontHeight = font.getFontHeight(),
buttonWidth = font.getStringWidth("Defaults") + 20,
buttonHeight = font.getLineHeight() + 4; buttonHeight = font.getLineHeight() + 4;
const int VBORDER = 8; const int VBORDER = 8;
const int HBORDER = 10; const int HBORDER = 10;
@ -49,7 +48,6 @@ UIDialog::UIDialog(OSystem& osystem, DialogContainer& parent,
int lwidth, pwidth = font.getStringWidth("Standard"); int lwidth, pwidth = font.getStringWidth("Standard");
WidgetArray wid; WidgetArray wid;
VariantList items; VariantList items;
ButtonWidget* b;
const GUI::Size& ds = instance().frameBuffer().desktopSize(); const GUI::Size& ds = instance().frameBuffer().desktopSize();
// Set real dimensions // Set real dimensions

View File

@ -44,7 +44,6 @@ VideoDialog::VideoDialog(OSystem& osystem, DialogContainer& parent,
const int lineHeight = font.getLineHeight(), const int lineHeight = font.getLineHeight(),
fontWidth = font.getMaxCharWidth(), fontWidth = font.getMaxCharWidth(),
fontHeight = font.getFontHeight(), fontHeight = font.getFontHeight(),
buttonWidth = font.getStringWidth("Defaults") + 20,
buttonHeight = font.getLineHeight() + 4; buttonHeight = font.getLineHeight() + 4;
int xpos, ypos, tabID; int xpos, ypos, tabID;
int lwidth = font.getStringWidth("TIA Palette "), int lwidth = font.getStringWidth("TIA Palette "),

View File

@ -644,10 +644,10 @@ SliderWidget::SliderWidget(GuiObject* boss, const GUI::Font& font,
_valueMax(100), _valueMax(100),
_isDragging(false), _isDragging(false),
_labelWidth(labelWidth), _labelWidth(labelWidth),
_valueLabelGap(valueLabelGap),
_valueLabelWidth(valueLabelWidth),
_valueLabel(""), _valueLabel(""),
_valueUnit(valueUnit), _valueUnit(valueUnit),
_valueLabelGap(valueLabelGap),
_valueLabelWidth(valueLabelWidth),
_numIntervals(0) _numIntervals(0)
{ {
_flags = WIDGET_ENABLED | WIDGET_TRACK_MOUSE; _flags = WIDGET_ENABLED | WIDGET_TRACK_MOUSE;

View File

@ -351,8 +351,8 @@ class SliderWidget : public ButtonWidget
int _labelWidth; int _labelWidth;
string _valueLabel; string _valueLabel;
string _valueUnit; string _valueUnit;
int _valueLabelWidth;
int _valueLabelGap; int _valueLabelGap;
int _valueLabelWidth;
int _numIntervals; int _numIntervals;
private: private: