[Scummvm-git-logs] scummvm master -> c5f67ac471cb72e4ccf587f0d7473de735110246
sev-
sev at scummvm.org
Fri Dec 8 12:41:36 CET 2017
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
257a99bdb8 Revert "WAGE: Fix crashes for poorly initialized objects"
f35cb961f2 WAGE: Avoid calling method of nullptr
c6c39d5578 WAGE: Handle null strings in toString and improve consistency
c5f67ac471 WAGE: Improve error message
Commit: 257a99bdb8d933290c79464086aa3860f12dd1f6
https://github.com/scummvm/scummvm/commit/257a99bdb8d933290c79464086aa3860f12dd1f6
Author: Colin Snover (github.com at zetafleet.com)
Date: 2017-12-08T11:41:32Z
Commit Message:
Revert "WAGE: Fix crashes for poorly initialized objects"
This reverts commit ea0fb987e042a86b8da683cafa7b9cf04d1636e6.
This issue was discovered during a full build of ScummVM using
Clang 5.
It is UB to call a null pointer. Whatever caller is trying to do
so needs to be fixed instead.
Changed paths:
engines/wage/entities.h
diff --git a/engines/wage/entities.h b/engines/wage/entities.h
index a755af5..0b5f96d 100644
--- a/engines/wage/entities.h
+++ b/engines/wage/entities.h
@@ -125,7 +125,7 @@ public:
void setDesignBounds(Common::Rect *bounds);
- Common::String toString() { if (!this) return "<NULL>"; return _name; }
+ Common::String toString() { return _name; }
};
class Chr : public Designed {
Commit: f35cb961f2beb1bcfb3e8e3b9e96011ae5d1df13
https://github.com/scummvm/scummvm/commit/f35cb961f2beb1bcfb3e8e3b9e96011ae5d1df13
Author: Willem Jan Palenstijn (wjp at usecode.org)
Date: 2017-12-08T11:41:32Z
Commit Message:
WAGE: Avoid calling method of nullptr
Changed paths:
engines/wage/entities.h
engines/wage/script.cpp
diff --git a/engines/wage/entities.h b/engines/wage/entities.h
index 0b5f96d..4f08cbb 100644
--- a/engines/wage/entities.h
+++ b/engines/wage/entities.h
@@ -125,7 +125,7 @@ public:
void setDesignBounds(Common::Rect *bounds);
- Common::String toString() { return _name; }
+ Common::String toString() const { return _name; }
};
class Chr : public Designed {
diff --git a/engines/wage/script.cpp b/engines/wage/script.cpp
index 9f8093c..de0b6bd 100644
--- a/engines/wage/script.cpp
+++ b/engines/wage/script.cpp
@@ -56,6 +56,13 @@
namespace Wage {
+static Common::String toString(const Designed *d) {
+ if (!d)
+ return "<NULL>";
+ else
+ return d->toString();
+}
+
Common::String Script::Operand::toString() {
switch(_type) {
case NUMBER:
@@ -64,13 +71,13 @@ Common::String Script::Operand::toString() {
case TEXT_INPUT:
return *_value.string;
case OBJ:
- return _value.obj->toString();
+ return Wage::toString(_value.obj);
case CHR:
- return _value.chr->toString();
+ return Wage::toString(_value.chr);
case SCENE:
- return _value.scene->toString();
+ return Wage::toString(_value.scene);
case CLICK_INPUT:
- return _value.inputClick->toString();
+ return Wage::toString(_value.inputClick);
default:
error("Unhandled operand type: _type");
}
Commit: c6c39d557850157d94e8e42d3f79391640264689
https://github.com/scummvm/scummvm/commit/c6c39d557850157d94e8e42d3f79391640264689
Author: Willem Jan Palenstijn (wjp at usecode.org)
Date: 2017-12-08T11:41:32Z
Commit Message:
WAGE: Handle null strings in toString and improve consistency
Changed paths:
engines/wage/script.cpp
engines/wage/script.h
diff --git a/engines/wage/script.cpp b/engines/wage/script.cpp
index de0b6bd..7a8ba14 100644
--- a/engines/wage/script.cpp
+++ b/engines/wage/script.cpp
@@ -63,13 +63,24 @@ static Common::String toString(const Designed *d) {
return d->toString();
}
-Common::String Script::Operand::toString() {
+static Common::String toString(const Common::String *d) {
+ if (!d)
+ return "<NULL>";
+ else
+ return *d;
+}
+
+static Common::String toString(int16 val) {
+ return Common::String::format("%d", val);
+}
+
+Common::String Script::Operand::toString() const {
switch(_type) {
case NUMBER:
- return Common::String::format("%d", _value.number);
+ return Wage::toString(_value.number);
case STRING:
case TEXT_INPUT:
- return *_value.string;
+ return Wage::toString(_value.string);
case OBJ:
return Wage::toString(_value.obj);
case CHR:
diff --git a/engines/wage/script.h b/engines/wage/script.h
index df7ec7e..279e4cf 100644
--- a/engines/wage/script.h
+++ b/engines/wage/script.h
@@ -119,7 +119,7 @@ private:
delete _value.string;
}
- Common::String toString();
+ Common::String toString() const;
};
struct ScriptText {
Commit: c5f67ac471cb72e4ccf587f0d7473de735110246
https://github.com/scummvm/scummvm/commit/c5f67ac471cb72e4ccf587f0d7473de735110246
Author: Willem Jan Palenstijn (wjp at usecode.org)
Date: 2017-12-08T11:41:32Z
Commit Message:
WAGE: Improve error message
Changed paths:
engines/wage/script.cpp
diff --git a/engines/wage/script.cpp b/engines/wage/script.cpp
index 7a8ba14..558f493 100644
--- a/engines/wage/script.cpp
+++ b/engines/wage/script.cpp
@@ -90,7 +90,7 @@ Common::String Script::Operand::toString() const {
case CLICK_INPUT:
return Wage::toString(_value.inputClick);
default:
- error("Unhandled operand type: _type");
+ error("Unhandled operand type: %d", (int)_type);
}
}
More information about the Scummvm-git-logs
mailing list