[Scummvm-git-logs] scummvm master -> abb4b988adf8fbf40c3e0d1245f65c93658eaaff
sev-
noreply at scummvm.org
Tue Jul 18 11:09:08 UTC 2023
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:
bf3f43ef64 DIRECTOR: LINGO: `b_scummvmassertequal` working for arrays
abb4b988ad DIRECTOR: Fix memory leaks when using `b_move` and lingotests
Commit: bf3f43ef6474c044923b29af5ed89bd0541170b0
https://github.com/scummvm/scummvm/commit/bf3f43ef6474c044923b29af5ed89bd0541170b0
Author: Harishankar Kumar (hari01584 at gmail.com)
Date: 2023-07-18T13:09:03+02:00
Commit Message:
DIRECTOR: LINGO: `b_scummvmassertequal` working for arrays
Initially `b_scummvmassertequal` was not working for arrays comparison
thus the test was failing. Now it is working and the tests are passing.
-p ./engines/director/lingo/tests/ --start-movie=sort.lingo directortest
Changed paths:
engines/director/lingo/lingo-builtins.cpp
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index e675af4a5b0..e19ec407626 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -3283,7 +3283,14 @@ void LB::b_scummvmassertequal(int nargs) {
Datum d2 = g_lingo->pop();
Datum d1 = g_lingo->pop();
- int result = (d1 == d2);
+ int result;
+
+ if (d1.type == ARRAY && d2.type == ARRAY) {
+ result = LC::eqData(d1, d2).u.i;
+ } else {
+ result = (d1 == d2);
+ }
+
if (!result) {
warning("BUILDBOT: LB::b_scummvmassertequals: %s is not equal %s at line %d", d1.asString().c_str(), d2.asString().c_str(), line.asInt());
}
Commit: abb4b988adf8fbf40c3e0d1245f65c93658eaaff
https://github.com/scummvm/scummvm/commit/abb4b988adf8fbf40c3e0d1245f65c93658eaaff
Author: Harishankar Kumar (hari01584 at gmail.com)
Date: 2023-07-18T13:09:03+02:00
Commit Message:
DIRECTOR: Fix memory leaks when using `b_move` and lingotests
Fixed memory leaks in `builtin.lingo` where the problem was due
to not deleting existing cast member before replacing it inside
`createOrReplaceCastMember`, the lingo instruction `move cast 1,3`
was having problems.
-p ./engines/director/lingo/tests/ --start-movie=builtin.lingo directortest
Changed paths:
engines/director/movie.cpp
diff --git a/engines/director/movie.cpp b/engines/director/movie.cpp
index 6c0b528dc33..bf41be2be10 100644
--- a/engines/director/movie.cpp
+++ b/engines/director/movie.cpp
@@ -411,6 +411,9 @@ CastMember* Movie::createOrReplaceCastMember(CastMemberID memberID, CastMember*
CastMember *result = nullptr;
if (_casts.contains(memberID.castLib)) {
+ // Delete existing cast member
+ _casts.getVal(memberID.castLib)->eraseCastMember(memberID);
+
_casts.getVal(memberID.castLib)->setCastMember(memberID, cast);
}
More information about the Scummvm-git-logs
mailing list