From: Scott Cantor Date: Thu, 12 May 2011 22:07:19 +0000 (+0000) Subject: https://issues.shibboleth.net/jira/browse/CPPOST-64 X-Git-Tag: 2.5.0~90 X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fcpp-opensaml.git;a=commitdiff_plain;h=ede749b3b44c70d6b8f5fc59d4f17a81d6e07a1a https://issues.shibboleth.net/jira/browse/CPPOST-64 --- diff --git a/saml/saml1/core/impl/ProtocolsImpl.cpp b/saml/saml1/core/impl/ProtocolsImpl.cpp index d765e13..28a5fe1 100644 --- a/saml/saml1/core/impl/ProtocolsImpl.cpp +++ b/saml/saml1/core/impl/ProtocolsImpl.cpp @@ -66,7 +66,7 @@ namespace opensaml { public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { - xmltooling::QName* m_qname; + mutable xmltooling::QName* m_qname; public: virtual ~RespondWithImpl() { delete m_qname; @@ -82,6 +82,9 @@ namespace opensaml { } xmltooling::QName* getQName() const { + if (!m_qname && getDOM() && getDOM()->getTextContent()) { + m_qname = XMLHelper::getNodeValueAsQName(getDOM()); + } return m_qname; } @@ -91,8 +94,9 @@ namespace opensaml { auto_ptr_XMLCh temp(m_qname->toString().c_str()); setTextContent(temp.get()); } - else + else { setTextContent(nullptr); + } } IMPL_XMLOBJECT_CLONE(RespondWith);