diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2014-06-26 13:47:54 +0100 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2014-06-28 14:37:22 +0100 |
commit | f692c61ab26b425cd8e6a36b8e229bbf7caff335 (patch) | |
tree | 5aac9f0a1810e9265901b86e8c37fe560c45df7e /configmgr/source/localizedvaluenode.cxx | |
parent | 115fd951e92a725ee6fca41e96d6b791ac66bd34 (diff) |
configmgr: avoid constructing duplicating and freeing Any's
Accelerates headless startup by 6.5m cycles or so, 0.6% or
so but something.
Change-Id: I9edca3d0c1c81d865e8369fee5cf193da7adb97c
Diffstat (limited to 'configmgr/source/localizedvaluenode.cxx')
-rw-r--r-- | configmgr/source/localizedvaluenode.cxx | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/configmgr/source/localizedvaluenode.cxx b/configmgr/source/localizedvaluenode.cxx index 27b977d2d824..3c7bbdce5d25 100644 --- a/configmgr/source/localizedvaluenode.cxx +++ b/configmgr/source/localizedvaluenode.cxx @@ -33,6 +33,10 @@ LocalizedValueNode::LocalizedValueNode(int layer, css::uno::Any const & value): Node(layer), value_(value) {} +LocalizedValueNode::LocalizedValueNode(int layer): + Node(layer) +{} + rtl::Reference< Node > LocalizedValueNode::clone(bool) const { return new LocalizedValueNode(*this); } @@ -42,9 +46,11 @@ OUString LocalizedValueNode::getTemplateName() const { } -void LocalizedValueNode::setValue(int layer, css::uno::Any const & value) { +void LocalizedValueNode::setValue(int layer, css::uno::Any const & value) +{ setLayer(layer); - value_ = value; + if (&value != &value_) + value_ = value; } LocalizedValueNode::LocalizedValueNode(LocalizedValueNode const & other): |