diff --git a/framework/ActiveSync/lib/Horde/ActiveSync/Device.php b/framework/ActiveSync/lib/Horde/ActiveSync/Device.php index 82fee01574a..a46f04c4775 100644 --- a/framework/ActiveSync/lib/Horde/ActiveSync/Device.php +++ b/framework/ActiveSync/lib/Horde/ActiveSync/Device.php @@ -60,6 +60,13 @@ class Horde_ActiveSync_Device */ protected $_state; + /** + * Dirty flag + * + * @var boolean + */ + protected $_dirty = false; + /** * Const'r * @@ -77,7 +84,11 @@ public function __construct(Horde_ActiveSync_State_Base $state, array $data = ar */ public function &__get($property) { - return $this->_properties[$property]; + if (isset($this->_properties[$property])) { + return $this->_properties[$property]; + } else { + return null; + } } /** @@ -85,7 +96,10 @@ public function &__get($property) */ public function __set($property, $value) { - $this->_properties[$property] = $value; + if ($value != $this->_properties[$property]) { + $this->_dirty = true; + $this->_properties[$property] = $value; + } } /** @@ -216,7 +230,10 @@ public function getLastSyncTimestamp() public function save() { - $this->_state->setDeviceInfo($this); + if ($this->_dirty) { + $this->_state->setDeviceInfo($this); + $this->_dirty = false; + } } -} \ No newline at end of file +}