summaryrefslogtreecommitdiff
path: root/protocols/JabberG
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2019-03-29 13:41:35 +0300
committerGeorge Hazan <ghazan@miranda.im>2019-03-29 13:41:35 +0300
commit5cb569b2aa74d7ef2b96f9185d4b7dc0ca09b2a0 (patch)
tree0509a95bead18f22b9a3d3b220d7cb802fcd8f64 /protocols/JabberG
parent9909cc3afdc580ca34dea4be7522278565d7e43f (diff)
Jabber: code optimization
Diffstat (limited to 'protocols/JabberG')
-rwxr-xr-xprotocols/JabberG/src/jabber_thread.cpp2
-rwxr-xr-xprotocols/JabberG/src/jabber_util.cpp2
-rw-r--r--protocols/JabberG/src/jabber_xml.h5
3 files changed, 7 insertions, 2 deletions
diff --git a/protocols/JabberG/src/jabber_thread.cpp b/protocols/JabberG/src/jabber_thread.cpp
index 0c0941c531..486fd6fbcc 100755
--- a/protocols/JabberG/src/jabber_thread.cpp
+++ b/protocols/JabberG/src/jabber_thread.cpp
@@ -1885,7 +1885,7 @@ void CJabberProto::OnProcessIq(const TiXmlElement *node)
auto *pFirstChild = XmlFirstChild(node);
if (pFirstChild)
- iq.InsertEndChild(pFirstChild->DeepClone(&iq)->ToElement());
+ iq += pFirstChild;
iq << XCHILD("error") << XATTR("type", "cancel")
<< XCHILDNS("service-unavailable", "urn:ietf:params:xml:ns:xmpp-stanzas");
diff --git a/protocols/JabberG/src/jabber_util.cpp b/protocols/JabberG/src/jabber_util.cpp
index 30f4137d68..1d946f6a90 100755
--- a/protocols/JabberG/src/jabber_util.cpp
+++ b/protocols/JabberG/src/jabber_util.cpp
@@ -372,7 +372,7 @@ void CJabberProto::SendPresenceTo(int status, const char *to, const TiXmlElement
p << XATTR("to", to);
if (extra)
- p.InsertEndChild(extra->DeepClone(&p)->ToElement());
+ p += extra;
// XEP-0115:Entity Capabilities
if (m_bAllowVersionRequests) {
diff --git a/protocols/JabberG/src/jabber_xml.h b/protocols/JabberG/src/jabber_xml.h
index 32fb0136c5..230be83e14 100644
--- a/protocols/JabberG/src/jabber_xml.h
+++ b/protocols/JabberG/src/jabber_xml.h
@@ -36,6 +36,11 @@ public:
XmlNode(const char *name);
XmlNode(const char *pszName, const char *ptszText);
+ __forceinline void operator +=(const TiXmlElement *pNode)
+ {
+ m_hXml->InsertEndChild(pNode->DeepClone(this)->ToElement());
+ }
+
__forceinline TiXmlElement* node() const
{ return m_hXml;
}