From cc708ce3321257885a53a2d0fc299f4a69f2471a Mon Sep 17 00:00:00 2001 From: Austin Harris Date: Mon, 14 Aug 2017 12:32:51 -0600 Subject: [PATCH 1/2] Fixes a crash in MdlEdit when starting up. And anywere else that find was being used. --- src/mdledit/mdledit.cpp | 2 +- src/zlib/tlist.h | 8 +++++--- src/zlib/tvector.h | 4 +++- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/mdledit/mdledit.cpp b/src/mdledit/mdledit.cpp index 82d5ebe5..525f22df 100644 --- a/src/mdledit/mdledit.cpp +++ b/src/mdledit/mdledit.cpp @@ -550,7 +550,7 @@ class MDLEditWindow : //imago 10/14 - turkey's change to modeler breaks when no hud index is set (go figure) GetModeler()->BuildHudList(); - GetModeler()->SetStyleHud("SoftwareHUD"); + GetModeler()->SetStyleHud("Software"); // "SoftwareHUD does not exist // load the fonts TrekResources::Initialize(GetModeler()); diff --git a/src/zlib/tlist.h b/src/zlib/tlist.h index f9b16c49..71541740 100644 --- a/src/zlib/tlist.h +++ b/src/zlib/tlist.h @@ -143,9 +143,11 @@ class TList : public TListImpl { ListNode* pfind = GetFirst(); while (pfind) { - if (m_fnEquals(((const TValue&)pfind->m_value), value)) { - return pfind; - } + const ZString& zv = value; + const ZString& mpv = pfind->m_value; + if (mpv == zv) { + return pfind; + } pfind = pfind->GetNext(); } diff --git a/src/zlib/tvector.h b/src/zlib/tvector.h index ecc81c8f..7b1b06de 100644 --- a/src/zlib/tvector.h +++ b/src/zlib/tvector.h @@ -349,7 +349,9 @@ class TVector { int Find(const TValue& value) { for (int index = 0; index < m_count; index++) { - if (m_fnEquals(((const TValue&)m_pvalue[index]), value)) { + const ZString& zv = value; + const ZString& mpv = m_pvalue[index]; + if (mpv == zv) { return index; } } From 800dd9f45aacc3f53b2aae3ca9c6d7388e6cb150 Mon Sep 17 00:00:00 2001 From: Austin Harris Date: Mon, 14 Aug 2017 13:01:22 -0600 Subject: [PATCH 2/2] Boy I was way off with that fix. Didn't realize it was a template problem. --- src/engine/modeler.cpp | 2 +- src/zlib/tlist.h | 6 ++---- src/zlib/tvector.h | 6 ++---- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/engine/modeler.cpp b/src/engine/modeler.cpp index 3de5dc07..f39d90b9 100644 --- a/src/engine/modeler.cpp +++ b/src/engine/modeler.cpp @@ -2190,7 +2190,7 @@ class ModelerImpl : public Modeler { HANDLE hFind; WIN32_FIND_DATAA findFileData; - m_vStyleHudName.PushEnd("Default"); + m_vStyleHudName.PushEnd(ZString("Default")); ZString hudpath = GetArtPath() + "/Mods/*"; diff --git a/src/zlib/tlist.h b/src/zlib/tlist.h index 71541740..60bd382e 100644 --- a/src/zlib/tlist.h +++ b/src/zlib/tlist.h @@ -143,10 +143,8 @@ class TList : public TListImpl { ListNode* pfind = GetFirst(); while (pfind) { - const ZString& zv = value; - const ZString& mpv = pfind->m_value; - if (mpv == zv) { - return pfind; + if (m_fnEquals(((const TValue&)pfind->m_value), value)) { + return pfind; } pfind = pfind->GetNext(); } diff --git a/src/zlib/tvector.h b/src/zlib/tvector.h index 7b1b06de..2fe0fd1c 100644 --- a/src/zlib/tvector.h +++ b/src/zlib/tvector.h @@ -11,7 +11,7 @@ template< class TValue, - class EqualsFunctionType = DefaultNoEquals, + class EqualsFunctionType = DefaultEquals, class CompareFunctionType = DefaultNoCompare > class TVector { @@ -349,9 +349,7 @@ class TVector { int Find(const TValue& value) { for (int index = 0; index < m_count; index++) { - const ZString& zv = value; - const ZString& mpv = m_pvalue[index]; - if (mpv == zv) { + if (m_fnEquals(((const TValue&)m_pvalue[index]), value)) { return index; } }