[Scummvm-git-logs] scummvm master -> 353d2f0220fcca3bea2f478f32eb85238bb22452

sev- sev at scummvm.org
Thu Oct 21 09:51:28 UTC 2021


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

Summary:
353d2f0220 DIRECTOR: Fix compilation with C++98


Commit: 353d2f0220fcca3bea2f478f32eb85238bb22452
    https://github.com/scummvm/scummvm/commit/353d2f0220fcca3bea2f478f32eb85238bb22452
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2021-10-21T11:51:25+02:00

Commit Message:
DIRECTOR: Fix compilation with C++98

The default assignment constructor just copies data over and we could
end up with _matte pointing twice to the same surface. It's now properly
reseted.

Changed paths:
    engines/director/sprite.cpp
    engines/director/sprite.h


diff --git a/engines/director/sprite.cpp b/engines/director/sprite.cpp
index f388d0cfda..2b2149e3eb 100644
--- a/engines/director/sprite.cpp
+++ b/engines/director/sprite.cpp
@@ -71,7 +71,13 @@ Sprite::Sprite(Frame *frame) {
 	_stretch = 0;
 }
 
-Sprite::Sprite(const Sprite &sprite) {
+Sprite& Sprite::operator=(const Sprite &sprite) {
+	if (this == &sprite) {
+		return *this;
+	}
+
+	this->~Sprite();
+
 	_frame = sprite._frame;
 	_score = sprite._score;
 	_movie = sprite._movie;
@@ -108,6 +114,13 @@ Sprite::Sprite(const Sprite &sprite) {
 
 	_volume = sprite._volume;
 	_stretch = sprite._stretch;
+
+	return *this;
+}
+
+Sprite::Sprite(const Sprite &sprite) {
+	_matte = nullptr;
+	*this = sprite;
 }
 
 Sprite::~Sprite() {
diff --git a/engines/director/sprite.h b/engines/director/sprite.h
index dc3754f854..dbc967545e 100644
--- a/engines/director/sprite.h
+++ b/engines/director/sprite.h
@@ -61,7 +61,7 @@ class Sprite {
 public:
 	Sprite(Frame *frame = nullptr);
 	Sprite(const Sprite &sprite);
-	Sprite& operator=(const Sprite &sprite) = default;
+	Sprite& operator=(const Sprite &sprite);
 	~Sprite();
 
 	Frame *getFrame() const { return _frame; }




More information about the Scummvm-git-logs mailing list