[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