diff --git a/src/BasicActions/Option.cpp b/src/BasicActions/Option.cpp index bb80d744adab2da32ee70438c8133eb25bc3e20e..80fa7dd3ab00e2984d5e3bb7ab7db0b51371ed2b 100644 --- a/src/BasicActions/Option.cpp +++ b/src/BasicActions/Option.cpp @@ -18,6 +18,7 @@ // along with OPAL. If not, see <https://www.gnu.org/licenses/>. // #include "BasicActions/Option.h" +#include "AbstractObjects/OpalData.h" #include "Attributes/Attributes.h" #include "Parser/FileStream.h" #include "Utilities/Options.h" @@ -65,7 +66,7 @@ namespace { AUTOPHASE, SURFDUMPFREQ, NUMBLOCKS, - RECYCLEBLOCKS, + RECYCLEBLOCKS, NLHS, CZERO, RNGTYPE, @@ -491,6 +492,11 @@ void Option::execute() { if(Attributes::getBool(itsAttr[TELL])) { *gmsg << "\nCurrent settings of options:\n" << *this << endl; } + + Option* main = dynamic_cast<Option*>(OpalData::getInstance()->find("OPTION")); + if (main) { + main->update(itsAttr); + } } void Option::handlePsDumpFrame(const std::string &dumpFrame) { @@ -518,4 +524,10 @@ std::string DumpFrameToString(DumpFrame df) { default: return std::string("GLOBAL"); } +} + +void Option::update(const std::vector<Attribute>& othersAttributes) { + for (int i = 0; i < SIZE; ++ i) { + itsAttr[i] = othersAttributes[i]; + } } \ No newline at end of file diff --git a/src/BasicActions/Option.h b/src/BasicActions/Option.h index e88187aacd587d80d9b421fd1fd55c359c76062c..63c43ac70154d953b174a03d48728b08208159d0 100644 --- a/src/BasicActions/Option.h +++ b/src/BasicActions/Option.h @@ -39,6 +39,7 @@ public: private: void handlePsDumpFrame(const std::string &dumpFrame); + void update(const std::vector<Attribute>&); // Not implemented. Option(const Option &);