GUI: Fix GCC Compiler Warnings in GUI Theme Parser Code

This removes the usage of memset to clear complex structures and replaces
them with constructor methods for the structures which will be executed
when these are instantiated.
This commit is contained in:
D G Turner 2019-08-17 05:03:04 +01:00
parent a6c5caf1fb
commit d78459f8bc
2 changed files with 19 additions and 2 deletions

View file

@ -50,6 +50,8 @@ struct DrawStep {
struct Color { struct Color {
uint8 r, g, b; uint8 r, g, b;
bool set; bool set;
Color () : r(0), g(0), b(0), set(false) {}
}; };
Color fgColor; /**< Foreground color */ Color fgColor; /**< Foreground color */
Color bgColor; /**< background color */ Color bgColor; /**< background color */
@ -85,6 +87,23 @@ struct DrawStep {
uint32 scale; /**< scale of all the coordinates in FIXED POINT with 16 bits mantissa */ uint32 scale; /**< scale of all the coordinates in FIXED POINT with 16 bits mantissa */
GUI::ThemeEngine::AutoScaleMode autoscale; /**< scale alphaimage if present */ GUI::ThemeEngine::AutoScaleMode autoscale; /**< scale alphaimage if present */
DrawStep() {
drawingCall = nullptr;
blitSrc = nullptr;
blitAlphaSrc = nullptr;
// fgColor, bgColor, gradColor1, gradColor2, bevelColor initialized by Color default constructor
autoWidth = autoHeight = false;
x = y = w = h = 0;
// padding initialized by Common::Rect default constructor
xAlign = yAlign = kVectorAlignManual;
shadow = stroke = factor = radius = bevel = 0;
fillMode = 0;
shadowFillMode = 0;
extraData = 0;
scale = 0;
autoscale = GUI::ThemeEngine::kAutoScaleNone;
}
}; };
VectorRenderer *createRenderer(int mode); VectorRenderer *createRenderer(int mode);

View file

@ -126,8 +126,6 @@ void ThemeParser::cleanup() {
Graphics::DrawStep *ThemeParser::defaultDrawStep() { Graphics::DrawStep *ThemeParser::defaultDrawStep() {
Graphics::DrawStep *step = new Graphics::DrawStep; Graphics::DrawStep *step = new Graphics::DrawStep;
memset(step, 0, sizeof(Graphics::DrawStep));
step->xAlign = Graphics::DrawStep::kVectorAlignManual; step->xAlign = Graphics::DrawStep::kVectorAlignManual;
step->yAlign = Graphics::DrawStep::kVectorAlignManual; step->yAlign = Graphics::DrawStep::kVectorAlignManual;
step->factor = 1; step->factor = 1;