[Scummvm-git-logs] scummvm master -> cd232d29e20c66b4dc4e5714f1e05899bd3cf09d

sev- sev at scummvm.org
Mon Jul 13 09:45:07 UTC 2020


This automated email contains information about 7 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
6a4c458711 DIRECTOR: Properly initialize BitmapCastMember
937c108af6 DIRECTOR: Initialize DirectorPlotData on generation
067cf78344 DIRECTOR: Plug memory leak
cd9018113a DIRECTOR: Initialize DirectorPlotData in constructor
b08a4ef03f DIRECTOR: Fix undefined behaviour
24695be687 GRAPHICS: MACGUI: Added sanity check
cd232d29e2 DIRECTOR: LINGO: Optimize addNamesV4()


Commit: 6a4c458711f6d0e970533822a5770b620ce3bcbe
    https://github.com/scummvm/scummvm/commit/6a4c458711f6d0e970533822a5770b620ce3bcbe
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-07-13T11:41:54+02:00

Commit Message:
DIRECTOR: Properly initialize BitmapCastMember

Changed paths:
    engines/director/castmember.cpp


diff --git a/engines/director/castmember.cpp b/engines/director/castmember.cpp
index f2ca04fc23..894db3f2ce 100644
--- a/engines/director/castmember.cpp
+++ b/engines/director/castmember.cpp
@@ -57,6 +57,8 @@ BitmapCastMember::BitmapCastMember(Cast *cast, uint16 castId, Common::ReadStream
 	_flags1 = 0;
 	_flags2 = 0;
 	_regX = _regY = 0;
+	_clut = kClutSystemMac;
+	_bitsPerPixel = 0;
 
 	if (version < 4) {
 		_flags1 = stream.readByte();	// region: 0 - auto, 1 - matte, 2 - disabled, 8 - no auto


Commit: 937c108af6a37ebafe7928a87bcb3f54b13d911f
    https://github.com/scummvm/scummvm/commit/937c108af6a37ebafe7928a87bcb3f54b13d911f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-07-13T11:41:54+02:00

Commit Message:
DIRECTOR: Initialize DirectorPlotData on generation

Changed paths:
    engines/director/channel.cpp


diff --git a/engines/director/channel.cpp b/engines/director/channel.cpp
index 6adf709edd..878001792b 100644
--- a/engines/director/channel.cpp
+++ b/engines/director/channel.cpp
@@ -50,6 +50,7 @@ DirectorPlotData Channel::getPlotData() {
 	DirectorPlotData pd(g_director->_wm, _sprite->_spriteType, _sprite->_ink, getBackColor(), getForeColor());
 	pd.colorWhite = pd._wm->_colorWhite;
 	pd.colorBlack = pd._wm->_colorBlack;
+	pd.dst = nullptr;
 
 	pd.srf = getSurface();
 	if (!pd.srf) {


Commit: 067cf7834464e780a721bfc4d7d5a9aedc90ac60
    https://github.com/scummvm/scummvm/commit/067cf7834464e780a721bfc4d7d5a9aedc90ac60
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-07-13T11:41:54+02:00

Commit Message:
DIRECTOR: Plug memory leak

Changed paths:
    engines/director/director.cpp


diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index 58340a5eb9..cf1c8971a5 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -112,6 +112,7 @@ DirectorEngine::DirectorEngine(OSystem *syst, const DirectorGameDescription *gam
 }
 
 DirectorEngine::~DirectorEngine() {
+	delete _windowList;
 	delete _soundManager;
 	delete _lingo;
 	delete _wm;


Commit: cd9018113ad59b94f219271da98348edd7c4cb5d
    https://github.com/scummvm/scummvm/commit/cd9018113ad59b94f219271da98348edd7c4cb5d
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-07-13T11:41:54+02:00

Commit Message:
DIRECTOR: Initialize DirectorPlotData in constructor

Changed paths:
    engines/director/director.h


diff --git a/engines/director/director.h b/engines/director/director.h
index 244179d613..e72d5dcc29 100644
--- a/engines/director/director.h
+++ b/engines/director/director.h
@@ -135,6 +135,10 @@ struct DirectorPlotData {
 	DirectorPlotData(Graphics::MacWindowManager *w, SpriteType s,InkType i, uint b, uint f) : _wm(w), sprite(s), ink(i), backColor(b), foreColor(f) {
 		srf = nullptr;
 		ms = nullptr;
+		dst = nullptr;
+		colorWhite = 255;
+		colorBlack = 0;
+		applyColor = false;
 	}
 
 	~DirectorPlotData() {


Commit: b08a4ef03f33aaf97ce5371c8e71fcc75195674f
    https://github.com/scummvm/scummvm/commit/b08a4ef03f33aaf97ce5371c8e71fcc75195674f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-07-13T11:41:54+02:00

Commit Message:
DIRECTOR: Fix undefined behaviour

Changed paths:
    engines/director/util.cpp


diff --git a/engines/director/util.cpp b/engines/director/util.cpp
index 84b28d79ca..e45af11c10 100644
--- a/engines/director/util.cpp
+++ b/engines/director/util.cpp
@@ -565,11 +565,14 @@ static const uint32 masks[31] = {
 };
 
 void RandomState::init(int len) {
-	if (len < 2 || len > 32)
+	if (len < 2 || len > 32) {
 		len = 32;
+		_len = (uint32)-1; // Since we cannot shift 32 bits
+	} else {
+		_len = (1 << len) - 1;
+	}
 
 	_seed = 1;
-	_len = (1 << len) - 1;
 	_mask = masks[len - 2];
 }
 


Commit: 24695be6877e47307c5fb25b4a0d29e6a153a4e4
    https://github.com/scummvm/scummvm/commit/24695be6877e47307c5fb25b4a0d29e6a153a4e4
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-07-13T11:41:54+02:00

Commit Message:
GRAPHICS: MACGUI: Added sanity check

Changed paths:
    graphics/macgui/macwindowmanager.cpp


diff --git a/graphics/macgui/macwindowmanager.cpp b/graphics/macgui/macwindowmanager.cpp
index abf544f944..d5f69646b0 100644
--- a/graphics/macgui/macwindowmanager.cpp
+++ b/graphics/macgui/macwindowmanager.cpp
@@ -424,7 +424,7 @@ void MacWindowManager::draw() {
 			continue;
 
 		bool forceRedraw = _fullRefresh;
-		if (!forceRedraw) {
+		if (!forceRedraw && dirtyRects.size()) {
 			for (Common::Array<Common::Rect>::iterator dirty = dirtyRects.begin(); dirty != dirtyRects.end(); dirty++) {
 				if (clip.intersects(*dirty)) {
 					forceRedraw = true;


Commit: cd232d29e20c66b4dc4e5714f1e05899bd3cf09d
    https://github.com/scummvm/scummvm/commit/cd232d29e20c66b4dc4e5714f1e05899bd3cf09d
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-07-13T11:44:06+02:00

Commit Message:
DIRECTOR: LINGO: Optimize addNamesV4()

Changed paths:
    engines/director/lingo/lingo-bytecode.cpp


diff --git a/engines/director/lingo/lingo-bytecode.cpp b/engines/director/lingo/lingo-bytecode.cpp
index e59a70e508..85ef341242 100644
--- a/engines/director/lingo/lingo-bytecode.cpp
+++ b/engines/director/lingo/lingo-bytecode.cpp
@@ -1396,7 +1396,7 @@ ScriptContext *Lingo::compileLingoV4(Common::SeekableSubReadStreamEndian &stream
 		}
 
 		// Attach to handlers
-		
+
 		Common::String functionName;
 		if (0 <= nameIndex && nameIndex < (int16)archive->names.size()) {
 			functionName = archive->names[nameIndex];
@@ -1492,11 +1492,8 @@ void LingoArchive::addNamesV4(Common::SeekableSubReadStreamEndian &stream) {
 	names.clear();
 
 	for (uint32 i = 0; i < count; i++) {
-		uint8 size = stream.readByte();
-		Common::String name;
-		for (uint8 j = 0; j < size; j++) {
-			name += stream.readByte();
-		}
+		Common::String name = stream.readPascalString();
+
 		names.push_back(name);
 		debugC(5, kDebugLoading, "%d: \"%s\"", i, name.c_str());
 	}




More information about the Scummvm-git-logs mailing list