From cdcc1078a748c35ac94017cf7ba96f3991ea73e6 Mon Sep 17 00:00:00 2001 From: Dave Goodwin Date: Sun, 10 Oct 2004 12:11:29 +0000 Subject: [PATCH] moved arrays used to check for dup rxns into a class to avoid problems with initialization on some systems (FreeBSD) --- Cantera/src/importCTML.cpp | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/Cantera/src/importCTML.cpp b/Cantera/src/importCTML.cpp index 95c284782..933173cac 100755 --- a/Cantera/src/importCTML.cpp +++ b/Cantera/src/importCTML.cpp @@ -44,11 +44,21 @@ using namespace ctml; // these are all used to check for duplicate reactions -vector< map > _reactiondata; -vector _eqn; -vector_int _dup, _nr, _typ; -vector _rev; +class rxninfo { +public: + vector< map > rdata; + vector eqn; + vector dup, nr, typ; + vector rev; +}; +rxninfo* _rxns = 0; +#define _reactiondata _rxns->rdata +#define _eqn _rxns->eqn +#define _dup _rxns->dup +#define _nr _rxns->nr +#define _typ _rxns->typ +#define _rev _rxns->rev namespace Cantera { @@ -1037,7 +1047,7 @@ next: */ if (check_for_duplicates) { doublereal c = 0.0; - + map rxnstoich; rxnstoich.clear(); int nr = rdata.reactants.size(); @@ -1118,6 +1128,9 @@ next: bool installReactionArrays(const XML_Node& p, Kinetics& kin, string default_phase, bool check_for_duplicates) { + if (_rxns == 0) { + _rxns = new rxninfo; + } _eqn.clear(); _dup.clear(); _nr.clear(); @@ -1244,6 +1257,8 @@ next: _nr.clear(); _typ.clear(); _reactiondata.clear(); + delete _rxns; + _rxns = 0; return true; }