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

sev- noreply at scummvm.org
Mon Oct 21 20:35:14 UTC 2024


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

Summary:
f85d6f4385 QDENGINE: Fix potential array underrun. PVS-Studio V557
47432fa60a QDENGINE: Simplify check by removing always-true part. PVS-Studio V560
137fc71645 QDENGINE: Try to continue execution on errors in minigame parameters. PVS-Studio V547, V560
9be306a4e4 QDENGINE: Fix potential null dereference. PVS-Studio V595
fa1b1d2b49 QDENGINE: Merged equal condition bodies. PVS-Studio V581
9ea8131442 QDENGINE: Clapped same condition bodies. PVS-Studio V581
5bc8ab4c48 QDENGINE: Make sure class is initialized. PVS-Studio V1077
c517c54915 QDENGINE: Fix potential null derederence. PVS-Studio V522
5280d10d62 QDENGINE: Clamped together identical code branches. PVS-Studio V1037
c69ffda82b QDENGINE: Clamped together identical code branches. PVS-Studio V1037


Commit: f85d6f4385b03547d104a85d1e86c95a6f89eba7
    https://github.com/scummvm/scummvm/commit/f85d6f4385b03547d104a85d1e86c95a6f89eba7
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T22:34:51+02:00

Commit Message:
QDENGINE: Fix potential array underrun. PVS-Studio V557

Changed paths:
    engines/qdengine/minigames/3mice2_sudoku.h


diff --git a/engines/qdengine/minigames/3mice2_sudoku.h b/engines/qdengine/minigames/3mice2_sudoku.h
index 911b2b2123c..00a755a8ac1 100644
--- a/engines/qdengine/minigames/3mice2_sudoku.h
+++ b/engines/qdengine/minigames/3mice2_sudoku.h
@@ -177,7 +177,7 @@ public:
 				num = getObjNum(clickObj->name());
 				debugC(2, kDebugMinigames, "clickObj: zone is: %d for name: '%s'", num, clickObj->name());
 
-				if (num > -1) {
+				if (num > 0) {
 					_figures[num - 1]->set_state("hide");
 					_figures[num + 12]->set_state("to_inv");
 				}
@@ -199,7 +199,7 @@ public:
 			debugC(2, kDebugMinigames, "clickObj: zone is: %d for name: '%s'", num, clickObj->name());
 			debugC(2, kDebugMinigames, "mouseObj: zone is: %d for name: '%s'", num2, mouseObj->name());
 
-			if (num > -1 && num2 > -1 && !posIsSet(num - 1)) {
+			if (num > 0 && num2 > 0 && !posIsSet(num - 1)) {
 				_objTarget->set_state(Common::String::format("%d", num).c_str());
 				_objTarget->update_screen_R();
 


Commit: 47432fa60adfd8a294709eb286e339163fcc5c50
    https://github.com/scummvm/scummvm/commit/47432fa60adfd8a294709eb286e339163fcc5c50
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T22:34:51+02:00

Commit Message:
QDENGINE: Simplify check by removing always-true part. PVS-Studio V560

Changed paths:
    engines/qdengine/minigames/3mice2_testo.h


diff --git a/engines/qdengine/minigames/3mice2_testo.h b/engines/qdengine/minigames/3mice2_testo.h
index 7cfc85b5af3..40d2fd3a80c 100644
--- a/engines/qdengine/minigames/3mice2_testo.h
+++ b/engines/qdengine/minigames/3mice2_testo.h
@@ -215,7 +215,7 @@ public:
 				}
 			}
 
-			if (mouseObj && clickObj) {
+			if (clickObj) { // && mouseObj
 				name = clickObj->name();
 
 				if (strstr(name, "notesto") && num > 0 && num <= 8) {


Commit: 137fc716451d698ca6dcdda659c3259bc8fc83c4
    https://github.com/scummvm/scummvm/commit/137fc716451d698ca6dcdda659c3259bc8fc83c4
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T22:34:51+02:00

Commit Message:
QDENGINE: Try to continue execution on errors in minigame parameters. PVS-Studio V547, V560

Changed paths:
    engines/qdengine/minigames/adv/EventManager.cpp


diff --git a/engines/qdengine/minigames/adv/EventManager.cpp b/engines/qdengine/minigames/adv/EventManager.cpp
index b7decb7069d..fb6e7dbdf4d 100644
--- a/engines/qdengine/minigames/adv/EventManager.cpp
+++ b/engines/qdengine/minigames/adv/EventManager.cpp
@@ -58,7 +58,7 @@ EventManager::EventManager() {
 			int read = sscanf(descr, "%d %d", &preset.score, &preset.triggerEventID);
 
 			if (read != 2)
-				error("EventManager(): Incorrect description string: %s", str_cache);
+				warning("EventManager(): Incorrect description string: %s", str_cache);
 
 			if (read == 2) {
 				if (preset.triggerEventID >= (int)_triggerEvents.size())
@@ -77,7 +77,7 @@ EventManager::EventManager() {
 			int read = sscanf(descr, "%d %d %d %d", &preset.score, &preset.fontID, &preset.escapeID, &preset.triggerEventID);
 
 			if (read != 4)
-				error("EventManager(): Incorrect event description string: %d", idx);
+				warning("EventManager(): Incorrect event description string: %d", idx);
 
 			if (preset.triggerEventID >= (int)_triggerEvents.size())
 				error("EventManager(): Reference to an unregistered trigger in %s", str_cache);


Commit: 9be306a4e4a9261dcf544d42b1ee74fe555b5fec
    https://github.com/scummvm/scummvm/commit/9be306a4e4a9261dcf544d42b1ee74fe555b5fec
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T22:34:51+02:00

Commit Message:
QDENGINE: Fix potential null dereference. PVS-Studio V595

Changed paths:
    engines/qdengine/minigames/adv/RunTime.cpp


diff --git a/engines/qdengine/minigames/adv/RunTime.cpp b/engines/qdengine/minigames/adv/RunTime.cpp
index 12629c85237..6b55ee40207 100644
--- a/engines/qdengine/minigames/adv/RunTime.cpp
+++ b/engines/qdengine/minigames/adv/RunTime.cpp
@@ -249,7 +249,7 @@ bool MinigameManager::createGame() {
 }
 
 #define SAFE_RELEASE(name)                      \
-    if(name){                                   \
+    if (name) {                                 \
         scene_->release_object_interface(name); \
         name = 0;                               \
     }
@@ -274,8 +274,10 @@ bool MinigameManager::finit() {
 	delete timeManager_;
 	timeManager_ = 0;
 
-	SAFE_RELEASE(state_flag_)
-	SAFE_RELEASE(pause_flag_)
+	if (scene_) {
+		SAFE_RELEASE(state_flag_)
+		SAFE_RELEASE(pause_flag_)
+	}
 
 	release(complete_help_miniature_);
 	release(complete_help_);


Commit: fa1b1d2b49c30afb6dc1c8dc24e538439742aa52
    https://github.com/scummvm/scummvm/commit/fa1b1d2b49c30afb6dc1c8dc24e538439742aa52
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T22:34:51+02:00

Commit Message:
QDENGINE: Merged equal condition bodies. PVS-Studio V581

Changed paths:
    engines/qdengine/minigames/adv/RunTime.cpp


diff --git a/engines/qdengine/minigames/adv/RunTime.cpp b/engines/qdengine/minigames/adv/RunTime.cpp
index 6b55ee40207..0c04ad27442 100644
--- a/engines/qdengine/minigames/adv/RunTime.cpp
+++ b/engines/qdengine/minigames/adv/RunTime.cpp
@@ -795,11 +795,11 @@ float MinigameManager::getDepth(const mgVect3f& pos) const {
 }
 
 QDObject MinigameManager::getObject(const char *name) const {
-	if (!name || !*name)
+	if (!name || !*name) {
 		warning("MinigameManager::getObject(): null name");
-
-	if (!name || !*name)
 		return QDObject::ZERO;
+	}
+
 	qdMinigameObjectInterface *obj = scene_->object_interface(name);
 	if (!obj)
 		warning("MinigameManager::getObject(): Object '%s' not found", transCyrillic(name));


Commit: 9ea813144293e40d634701606b2634f13ddd8e84
    https://github.com/scummvm/scummvm/commit/9ea813144293e40d634701606b2634f13ddd8e84
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T22:34:51+02:00

Commit Message:
QDENGINE: Clapped same condition bodies. PVS-Studio V581

Changed paths:
    engines/qdengine/minigames/adv/RunTime.cpp
    engines/qdengine/minigames/adv/TextManager.cpp


diff --git a/engines/qdengine/minigames/adv/RunTime.cpp b/engines/qdengine/minigames/adv/RunTime.cpp
index 0c04ad27442..f99d4078beb 100644
--- a/engines/qdengine/minigames/adv/RunTime.cpp
+++ b/engines/qdengine/minigames/adv/RunTime.cpp
@@ -1020,7 +1020,7 @@ TimeManager::TimeManager(HoldData<TimeManagerData> &data_) {
 			sscanf(data, "%f", &timeCost_);
 	}
 
-	direction_ = DOWN;
+	direction_ = DOWN; // Default value
 
 	if (timeBar_) {
 		TimeManagerData myData;
@@ -1036,10 +1036,8 @@ TimeManager::TimeManager(HoldData<TimeManagerData> &data_) {
 			if (sscanf(data, "%d", &dir) == 1) {
 				assert(dir >= 0 && dir <= 3);
 				direction_ = Direction(dir);
-			} else
-				direction_ = DOWN;
-		} else
-			direction_ = DOWN;
+			}
+		}
 	} else
 		size_ = mgVect2f(-1.f, -1.f);
 
diff --git a/engines/qdengine/minigames/adv/TextManager.cpp b/engines/qdengine/minigames/adv/TextManager.cpp
index ba6dea00290..5c67bec7495 100644
--- a/engines/qdengine/minigames/adv/TextManager.cpp
+++ b/engines/qdengine/minigames/adv/TextManager.cpp
@@ -69,11 +69,10 @@ TextManager::TextManager() {
 			                  &escape.accel_min.x, &escape.accel_max.x, &escape.accel_min.y, &escape.accel_max.y,
 			                  &escape.aliveTime, escape.format);
 
-			if (read != 11)
+			if (read != 11) {
 				warning("TextManager(): incorrect particle definition in [%s]", str_cache);
-
-			if (read != 11)
 				break;
+			}
 			_escapes.push_back(escape);
 		} else
 			break;
@@ -104,19 +103,18 @@ bool TextManager::getStaticPreset(StaticTextPreset& preset, const char* name) co
 		str[63] = 0;
 		int read = sscanf(descr, "%d %d |%63s", &align, &preset.font, str);
 
-		if (read != 3)
+		if (read != 3) {
 			warning("TextManager::getStaticPreset(): Incorrect text format description in %s", transCyrillic(name));
-
-		if (read != 3)
 			return false;
+		}
 
 		char *pos_obj = strchr(str, '|');
 
-		if (!pos_obj)
+		if (!pos_obj) {
 			warning("TextManager::getStaticPreset(): Incorrect text format description (2) in %s", transCyrillic(name));
-
-		if (!pos_obj)
 			return false;
+		}
+
 		*pos_obj = 0;
 		++pos_obj;
 


Commit: 5bc8ab4c4813bbf79727f2bf53ff545272443333
    https://github.com/scummvm/scummvm/commit/5bc8ab4c4813bbf79727f2bf53ff545272443333
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T22:34:51+02:00

Commit Message:
QDENGINE: Make sure class is initialized. PVS-Studio V1077

Changed paths:
    engines/qdengine/minigames/adv/m_triangles.h


diff --git a/engines/qdengine/minigames/adv/m_triangles.h b/engines/qdengine/minigames/adv/m_triangles.h
index e9ac06e1c78..1e57046e809 100644
--- a/engines/qdengine/minigames/adv/m_triangles.h
+++ b/engines/qdengine/minigames/adv/m_triangles.h
@@ -78,7 +78,7 @@ public:
 	void quant(float dt);
 
 private:
-	GameType gameType_;
+	GameType gameType_ = TRIANGLE;
 	Coords positions_;
 	int selectDepth_ = 0;
 


Commit: c517c5491519a0304979f79005e491a8ae907481
    https://github.com/scummvm/scummvm/commit/c517c5491519a0304979f79005e491a8ae907481
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T22:34:51+02:00

Commit Message:
QDENGINE: Fix potential null derederence. PVS-Studio V522

Changed paths:
    engines/qdengine/minigames/tetris.h


diff --git a/engines/qdengine/minigames/tetris.h b/engines/qdengine/minigames/tetris.h
index abfc2a13e42..261af31035c 100644
--- a/engines/qdengine/minigames/tetris.h
+++ b/engines/qdengine/minigames/tetris.h
@@ -50,6 +50,9 @@ public:
 		if (!_flyingObjs) {
 			_flyingObjs = (qdMinigameObjectInterface **)malloc(5 * sizeof(qdMinigameObjectInterface *));
 
+			if (!_flyingObjs)
+				return false;
+
 			for (int i = 0; i < 5; i++) {
 				Common::String name = Common::String::format("\xeb\xe5\xf2\xe8\xf2%d", i + 1); // "летит%i"
 				_flyingObjs[i] = _scene->object_interface(_scene->minigame_parameter(name.c_str()));
@@ -59,6 +62,9 @@ public:
 		if (!_hiddenObjs) {
 			_hiddenObjs = (qdMinigameObjectInterface **)malloc(5 * sizeof(qdMinigameObjectInterface *));
 
+			if (!_hiddenObjs)
+				return false;
+
 			for (int i = 0; i < 5; i++) {
 				Common::String name = Common::String::format("\xf1\xea\xf0\xfb\xf2%d", i + 1); // "скрыт%i"
 				_hiddenObjs[i] = _scene->object_interface(_scene->minigame_parameter(name.c_str()));


Commit: 5280d10d62bdf8cad3955e1416a3582383d6617d
    https://github.com/scummvm/scummvm/commit/5280d10d62bdf8cad3955e1416a3582383d6617d
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T22:34:52+02:00

Commit Message:
QDENGINE: Clamped together identical code branches. PVS-Studio V1037

Changed paths:
    engines/qdengine/qdcore/qd_condition.cpp


diff --git a/engines/qdengine/qdcore/qd_condition.cpp b/engines/qdengine/qdcore/qd_condition.cpp
index f54569b6c58..10cbeb843fb 100644
--- a/engines/qdengine/qdcore/qd_condition.cpp
+++ b/engines/qdengine/qdcore/qd_condition.cpp
@@ -78,6 +78,8 @@ void qdCondition::set_type(ConditionType tp) {
 	case CONDITION_FALSE:
 		break;
 	case CONDITION_MOUSE_CLICK:
+	case CONDITION_PERSONAGE_ACTIVE:
+	case CONDITION_MOUSE_ZONE_CLICK:
 		_data.resize(1);
 		_objects.resize(1);
 		init_data(0, qdConditionData::DATA_STRING);
@@ -130,11 +132,6 @@ void qdCondition::set_type(ConditionType tp) {
 		init_data(0, qdConditionData::DATA_STRING);
 		init_data(1, qdConditionData::DATA_STRING);
 		break;
-	case CONDITION_MOUSE_ZONE_CLICK:
-		_data.resize(1);
-		_objects.resize(1);
-		init_data(0, qdConditionData::DATA_STRING);
-		break;
 	case CONDITION_MOUSE_OBJECT_ZONE_CLICK:
 		_data.resize(2);
 		_objects.resize(2);
@@ -163,11 +160,6 @@ void qdCondition::set_type(ConditionType tp) {
 		init_data(1, qdConditionData::DATA_STRING);
 		init_data(2, qdConditionData::DATA_FLOAT, 1);
 		break;
-	case CONDITION_PERSONAGE_ACTIVE:
-		_data.resize(1);
-		_objects.resize(1);
-		init_data(0, qdConditionData::DATA_STRING);
-		break;
 	case CONDITION_OBJECT_STATE_WAITING:
 		_data.resize(2);
 		_objects.resize(2);


Commit: c69ffda82b1eb0cb55087c2a0b6eba2223453b4a
    https://github.com/scummvm/scummvm/commit/c69ffda82b1eb0cb55087c2a0b6eba2223453b4a
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T22:34:52+02:00

Commit Message:
QDENGINE: Clamped together identical code branches. PVS-Studio V1037

Changed paths:
    engines/qdengine/qdcore/qd_game_object_moving.cpp


diff --git a/engines/qdengine/qdcore/qd_game_object_moving.cpp b/engines/qdengine/qdcore/qd_game_object_moving.cpp
index 970c4b5c7b9..8292eb34f7d 100644
--- a/engines/qdengine/qdcore/qd_game_object_moving.cpp
+++ b/engines/qdengine/qdcore/qd_game_object_moving.cpp
@@ -1039,8 +1039,6 @@ bool qdGameObjectMoving::update_screen_pos() {
 				qdGameObjectStateWalk::OffsetType offs_type = qdGameObjectStateWalk::OFFSET_WALK;
 				switch (_movement_mode) {
 				case MOVEMENT_MODE_STOP:
-					offs_type = qdGameObjectStateWalk::OFFSET_STATIC;
-					break;
 				case MOVEMENT_MODE_TURN:
 					offs_type = qdGameObjectStateWalk::OFFSET_STATIC;
 					break;
@@ -1050,7 +1048,7 @@ bool qdGameObjectMoving::update_screen_pos() {
 				case MOVEMENT_MODE_MOVE:
 					offs_type = qdGameObjectStateWalk::OFFSET_WALK;
 					break;
-			case MOVEMENT_MODE_END:
+				case MOVEMENT_MODE_END:
 					offs_type = qdGameObjectStateWalk::OFFSET_END;
 					break;
 				}




More information about the Scummvm-git-logs mailing list