diff --git a/core/dbobject.class.php b/core/dbobject.class.php index eb23475a1..5ab61e3e3 100644 --- a/core/dbobject.class.php +++ b/core/dbobject.class.php @@ -364,7 +364,14 @@ abstract class DBObject implements iDisplay } return $bFullyLoaded; } - + + protected function _Set($sAttCode, $value) + { + $this->m_aCurrValues[$sAttCode] = $value; + $this->m_aTouchedAtt[$sAttCode] = true; + unset($this->m_aModifiedAtt[$sAttCode]); + } + public function Set($sAttCode, $value) { if ($sAttCode == 'finalclass') @@ -451,13 +458,11 @@ abstract class DBObject implements iDisplay $realvalue = $oAttDef->MakeRealValue($value, $this); - $this->m_aCurrValues[$sAttCode] = $realvalue; - $this->m_aTouchedAtt[$sAttCode] = true; - unset($this->m_aModifiedAtt[$sAttCode]); + $this->_Set($sAttCode, $realvalue); foreach (MetaModel::ListMetaAttributes(get_class($this), $sAttCode) as $sMetaAttCode => $oMetaAttDef) { - $this->Set($sMetaAttCode, $oMetaAttDef->MapValue($this)); + $this->_Set($sMetaAttCode, $oMetaAttDef->MapValue($this)); } // The object has changed, reset caches