summaryrefslogtreecommitdiff
path: root/configmgr/source/localizedvaluenode.cxx
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2014-06-26 13:47:54 +0100
committerMichael Meeks <michael.meeks@collabora.com>2014-06-28 14:37:22 +0100
commitf692c61ab26b425cd8e6a36b8e229bbf7caff335 (patch)
tree5aac9f0a1810e9265901b86e8c37fe560c45df7e /configmgr/source/localizedvaluenode.cxx
parent115fd951e92a725ee6fca41e96d6b791ac66bd34 (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.cxx10
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):