From 9916b263831f20e5841275051a8ed014de1f24eb Mon Sep 17 00:00:00 2001 From: Colin Snover Date: Wed, 29 Nov 2017 00:06:12 -0600 Subject: SCUMM: Replace UB-triggering serialization code with Common::Serializer Fixes Trac#10342. --- engines/scumm/imuse/imuse_internal.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'engines/scumm/imuse/imuse_internal.h') diff --git a/engines/scumm/imuse/imuse_internal.h b/engines/scumm/imuse/imuse_internal.h index fed716e300..7b1d2f65fa 100644 --- a/engines/scumm/imuse/imuse_internal.h +++ b/engines/scumm/imuse/imuse_internal.h @@ -24,6 +24,7 @@ #define SCUMM_IMUSE_INTERNAL #include "common/scummsys.h" +#include "common/serializer.h" #include "scumm/imuse/imuse.h" #include "scumm/imuse/instrument.h" #include "scumm/saveload.h" @@ -153,7 +154,7 @@ struct CommandQueue { // ////////////////////////////////////////////////// -class Player : public MidiDriver_BASE { +class Player : public MidiDriver_BASE, public Common::Serializable { /* * External SysEx handler functions shall each be defined in * a separate file. This header file shall be included at the @@ -267,7 +268,7 @@ public: void onTimer(); void removePart(Part *part); int scan(uint totrack, uint tobeat, uint totick); - void saveLoadWithSerializer(Serializer *ser); + void saveLoadWithSerializer(Common::Serializer &ser); int setHook(byte cls, byte value, byte chan) { return _hook.set(cls, value, chan); } void setDetune(int detune); void setOffsetNote(int offset); @@ -295,7 +296,7 @@ public: // ////////////////////////////////////////////////// -struct Part : public Serializable { +struct Part : public Common::Serializable { IMuseInternal *_se; int _slot; Part *_next, *_prev; @@ -360,7 +361,7 @@ struct Part : public Serializable { Part(); - void saveLoadWithSerializer(Serializer *ser); + void saveLoadWithSerializer(Common::Serializer &ser); private: void sendPitchBend(); @@ -518,7 +519,7 @@ protected: public: // IMuse interface void pause(bool paused); - int save_or_load(Serializer *ser, ScummEngine *scumm, bool fixAfterLoad = true); + void saveLoadWithSerializer(Common::Serializer &ser, ScummEngine *scumm, bool fixAfterLoad = true); bool get_sound_active(int sound) const; int32 doCommand(int numargs, int args[]); uint32 property(int prop, uint32 value); -- cgit v1.2.3