From deda50fefe91d90298805919169e3b679fbe5b7d Mon Sep 17 00:00:00 2001 From: "Alexander A. Klimov" Date: Thu, 6 Aug 2020 17:56:53 +0200 Subject: [PATCH] ConfigItem#Commit(): consume Internal.modified_attributes refs #5235 --- lib/config/configitem.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/config/configitem.cpp b/lib/config/configitem.cpp index 43eb44816..1054a7ca8 100644 --- a/lib/config/configitem.cpp +++ b/lib/config/configitem.cpp @@ -191,6 +191,20 @@ ConfigObject::Ptr ConfigItem::Commit(bool discard) m_Scope->CopyTo(frame.Locals); try { m_Expression->Evaluate(frame, &debugHints); + + Dictionary::Ptr allMods (Namespace::Ptr(ScriptGlobal::Get("Internal"))->Get("modified_attributes")); + Dictionary::Ptr typeMods (allMods->Get(type->GetName())); + + if (typeMods) { + Function::Ptr objMods (typeMods->Get(m_Name)); + + if (objMods) { + objMods->Invoke({dobj}); + + ObjectLock oLock(typeMods); + typeMods->Remove(m_Name); + } + } } catch (const std::exception& ex) { if (m_IgnoreOnError) { Log(LogNotice, "ConfigObject")