From 5cb569b2aa74d7ef2b96f9185d4b7dc0ca09b2a0 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 29 Mar 2019 13:41:35 +0300 Subject: Jabber: code optimization --- protocols/JabberG/src/jabber_thread.cpp | 2 +- protocols/JabberG/src/jabber_util.cpp | 2 +- protocols/JabberG/src/jabber_xml.h | 5 +++++ 3 files changed, 7 insertions(+), 2 deletions(-) (limited to 'protocols/JabberG') 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; } -- cgit v1.2.3