From 99abd640c82d47b6b0fd11267eec18fa528f0a0b Mon Sep 17 00:00:00 2001 From: Thierry Crozat Date: Fri, 6 Oct 2017 00:55:11 +0100 Subject: HUGO: Fix undefined behaviour in variadic functions Passing a type that undergoes default argument promotion as last argument of a variadic function results in undefined behaviour. --- engines/hugo/display.cpp | 2 +- engines/hugo/display.h | 2 +- engines/hugo/inventory.cpp | 4 ++-- engines/hugo/inventory.h | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) (limited to 'engines') diff --git a/engines/hugo/display.cpp b/engines/hugo/display.cpp index 17627608bd..77df20eda5 100644 --- a/engines/hugo/display.cpp +++ b/engines/hugo/display.cpp @@ -332,7 +332,7 @@ int16 Screen::mergeLists(Rect *list, Rect *blist, const int16 len, int16 blen) { * Process the display list * Trailing args are int16 x,y,dx,dy for the D_ADD operation */ -void Screen::displayList(Dupdate update, ...) { +void Screen::displayList(int update, ...) { debugC(6, kDebugDisplay, "displayList()"); int16 blitLength = 0; // Length of blit list diff --git a/engines/hugo/display.h b/engines/hugo/display.h index 99fda0a638..33a0be8850 100644 --- a/engines/hugo/display.h +++ b/engines/hugo/display.h @@ -61,7 +61,7 @@ public: void displayBackground(); void displayFrame(const int sx, const int sy, Seq *seq, const bool foreFl); - void displayList(Dupdate update, ...); + void displayList(int update, ...); void displayRect(const int16 x, const int16 y, const int16 dx, const int16 dy); void drawBoundaries(); void drawRectangle(const bool filledFl, const int16 x1, const int16 y1, const int16 x2, const int16 y2, const int color); diff --git a/engines/hugo/inventory.cpp b/engines/hugo/inventory.cpp index 64609e6327..b638322847 100644 --- a/engines/hugo/inventory.cpp +++ b/engines/hugo/inventory.cpp @@ -139,8 +139,8 @@ void InventoryHandler::constructInventory(const int16 imageTotNumb, int displayN * Process required action for inventory * Returns objId under cursor (or -1) for INV_GET */ -int16 InventoryHandler::processInventory(const InvAct action, ...) { - debugC(1, kDebugInventory, "processInventory(InvAct action, ...)"); +int16 InventoryHandler::processInventory(const int action, ...) { + debugC(1, kDebugInventory, "processInventory(int action, ...)"); int16 imageNumb; // Total number of inventory items int displayNumb; // Total number displayed/carried diff --git a/engines/hugo/inventory.h b/engines/hugo/inventory.h index a57bff4b58..61e9009559 100644 --- a/engines/hugo/inventory.h +++ b/engines/hugo/inventory.h @@ -49,7 +49,7 @@ public: int16 findIconId(int16 objId); void loadInvent(Common::SeekableReadStream &in); - int16 processInventory(const InvAct action, ...); + int16 processInventory(const int action, ...); void runInventory(); private: -- cgit v1.2.3