aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThierry Crozat2017-10-06 00:55:11 +0100
committerThierry Crozat2017-10-06 01:01:11 +0100
commit99abd640c82d47b6b0fd11267eec18fa528f0a0b (patch)
tree5d23cedf46f5f03ec79bec7f8448ab4bff7d15fa
parent6f8f27ecb28fca750e0ceaa09779d78164eaaaac (diff)
downloadscummvm-rg350-99abd640c82d47b6b0fd11267eec18fa528f0a0b.tar.gz
scummvm-rg350-99abd640c82d47b6b0fd11267eec18fa528f0a0b.tar.bz2
scummvm-rg350-99abd640c82d47b6b0fd11267eec18fa528f0a0b.zip
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.
-rw-r--r--engines/hugo/display.cpp2
-rw-r--r--engines/hugo/display.h2
-rw-r--r--engines/hugo/inventory.cpp4
-rw-r--r--engines/hugo/inventory.h2
4 files changed, 5 insertions, 5 deletions
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: