[Scummvm-git-logs] scummvm master -> 269cd905ed585253b7e372bb415a62072e393463

lephilousophe noreply at scummvm.org
Sun Feb 23 09:24:56 UTC 2025


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

Summary:
8b56b2c454 MM: Fix memory leaks in create_xeen
269cd905ed MM: Fix stack limit warning


Commit: 8b56b2c454808fdaf9e7c82a258fbd9360b17065
    https://github.com/scummvm/scummvm/commit/8b56b2c454808fdaf9e7c82a258fbd9360b17065
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2025-02-23T10:24:37+01:00

Commit Message:
MM: Fix memory leaks in create_xeen

Changed paths:
    devtools/create_mm/create_xeen/de_constants.h
    devtools/create_mm/create_xeen/en_constants.h
    devtools/create_mm/create_xeen/ru_constants.h


diff --git a/devtools/create_mm/create_xeen/de_constants.h b/devtools/create_mm/create_xeen/de_constants.h
index 7d4b158e9bb..3249d12ecc7 100644
--- a/devtools/create_mm/create_xeen/de_constants.h
+++ b/devtools/create_mm/create_xeen/de_constants.h
@@ -26,7 +26,6 @@
 
 class DE : public LangConstants {
 public:
-	virtual ~DE() {}
 	const char *CLOUDS_CREDITS() {
 		return "\v012\t000\x3"
 			   "c\f35Designed and Directed By:\n"
@@ -2130,6 +2129,20 @@ public:
 			return _soxm;
 		}
 
+		virtual ~DE_KeyConstants() {
+			delete _dci;
+			delete _dcp;
+			delete _dcc;
+			delete _dd;
+			delete _di;
+			delete _dp;
+			delete _dq;
+			delete _dqf;
+			delete _ds;
+			delete _l;
+			delete _soxm;
+		}
+
 	private:
 		DE_DialogsCharInfo     *_dci = NULL;
 		DE_DialogsControlPanel *_dcp = NULL;
@@ -2149,6 +2162,9 @@ public:
 		return _kc;
 	}
 
+	virtual ~DE() {
+		delete _kc;
+	}
 private:
 	DE_KeyConstants *_kc = NULL;
 };
diff --git a/devtools/create_mm/create_xeen/en_constants.h b/devtools/create_mm/create_xeen/en_constants.h
index e133d804c36..b455eb39222 100644
--- a/devtools/create_mm/create_xeen/en_constants.h
+++ b/devtools/create_mm/create_xeen/en_constants.h
@@ -26,7 +26,6 @@
 
 class EN : public LangConstants {
 public:
-	virtual ~EN() {}
 	const char *CLOUDS_CREDITS() {
 		return "\v012\t000\x3"
 			   "c\f35Designed and Directed By:\n"
@@ -2132,6 +2131,20 @@ public:
 			return _soxm;
 		}
 
+		virtual ~EN_KeyConstants() {
+			delete _dci;
+			delete _dcp;
+			delete _dcc;
+			delete _dd;
+			delete _di;
+			delete _dp;
+			delete _dq;
+			delete _dqf;
+			delete _ds;
+			delete _l;
+			delete _soxm;
+		}
+
 	private:
 		EN_DialogsCharInfo     *_dci = NULL;
 		EN_DialogsControlPanel *_dcp = NULL;
@@ -2151,6 +2164,10 @@ public:
 		return _kc;
 	}
 
+	virtual ~EN() {
+		delete _kc;
+	}
+
 private:
 	EN_KeyConstants *_kc = NULL;
 };
diff --git a/devtools/create_mm/create_xeen/ru_constants.h b/devtools/create_mm/create_xeen/ru_constants.h
index f0fb49f3c21..ff8bbdf40a8 100644
--- a/devtools/create_mm/create_xeen/ru_constants.h
+++ b/devtools/create_mm/create_xeen/ru_constants.h
@@ -25,7 +25,6 @@
 
 class RU : public LangConstants {
 public:
-	virtual ~RU() {}
 	const char *CLOUDS_CREDITS() {
 		return "\v012\t000\x3"																								 // "\v012\t000\x3"
 			   "c\f35\x88\xA4\xA5\xEF \xA8 \xE0\xE3\xAA\xAE\xA2\xAE\xA4\xE1\xE2\xA2\xAE \xAF\xE0\xAE\xA5\xAA\xE2\xAE\xAC:\n" // "c\f35Идея и руководство проектом:\n"
@@ -2583,6 +2582,21 @@ public:
 				_soxm = new RU_CloudsOfXeenMenu();
 			return _soxm;
 		}
+
+		virtual ~RU_KeyConstants() {
+			delete _dci;
+			delete _dcp;
+			delete _dcc;
+			delete _dd;
+			delete _di;
+			delete _dp;
+			delete _dq;
+			delete _dqf;
+			delete _ds;
+			delete _l;
+			delete _soxm;
+		}
+
 	private:
 		RU_DialogsCharInfo     *_dci = NULL;
 		RU_DialogsControlPanel *_dcp = NULL;
@@ -2602,6 +2616,10 @@ public:
 		return _kc;
 	}
 
+	virtual ~RU() {
+		delete _kc;
+	}
+
 private:
 	RU_KeyConstants *_kc = NULL;
 };


Commit: 269cd905ed585253b7e372bb415a62072e393463
    https://github.com/scummvm/scummvm/commit/269cd905ed585253b7e372bb415a62072e393463
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2025-02-23T10:24:37+01:00

Commit Message:
MM: Fix stack limit warning

Instead of allocating the data directly in the class, allocate it in the
heap.

Changed paths:
    devtools/create_mm/create_xeen/file.h


diff --git a/devtools/create_mm/create_xeen/file.h b/devtools/create_mm/create_xeen/file.h
index 18baf35a454..d8d64e937c1 100644
--- a/devtools/create_mm/create_xeen/file.h
+++ b/devtools/create_mm/create_xeen/file.h
@@ -130,16 +130,21 @@ public:
 
 class MemFile : public Stream {
 private:
-	byte _data[MAX_MEM_SIZE];
+	byte *_data;
 	size_t _size, _offset;
 public:
 	MemFile() : _size(0), _offset(0) {
+		_data = new byte[MAX_MEM_SIZE];
 		memset(_data, 0, MAX_MEM_SIZE);
 	}
 	MemFile(const byte *data, size_t size) : _size(size), _offset(0) {
+		assert(size <= MAX_MEM_SIZE);
+		_data = new byte[MAX_MEM_SIZE];
 		memcpy(_data, data, size);
+		memset(_data + size, 0, MAX_MEM_SIZE - size);
 	}
 	virtual ~MemFile() {
+		delete[] _data;
 	}
 
 	bool open() {




More information about the Scummvm-git-logs mailing list