[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