Bug fixes and API changes from second unit test.
[shibboleth/cpp-xmltooling.git] / xmltooling / AbstractDOMCachingXMLObject.h
index 8093fe8..453c634 100644 (file)
@@ -56,10 +56,10 @@ namespace xmltooling {
         /**\r
          * @see DOMCachingXMLObject::setDocument()\r
          */\r
-        DOMDocument* setDocument(DOMDocument* doc) {\r
-            DOMDocument* ret=m_document;\r
+        void setDocument(DOMDocument* doc) {\r
+            if (m_document)\r
+                m_document->release();\r
             m_document=doc;\r
-            return ret;\r
         }\r
     \r
         /**\r
@@ -112,7 +112,7 @@ namespace xmltooling {
             XMLCh* newString = XMLString::replicate(newValue);\r
             XMLString::trim(newString);\r
 \r
-            if (oldValue && !newValue || !oldValue && newValue || XMLString::compareString(oldValue,newValue))\r
+            if (!XMLString::equals(oldValue,newValue))\r
                 releaseThisandParentDOM();\r
     \r
             return newString;\r
@@ -140,8 +140,8 @@ namespace xmltooling {
          * @param namespaceURI the namespace the element is in\r
          * @param elementLocalName the local name of the XML element this Object represents\r
          */\r
-        AbstractDOMCachingXMLObject(const XMLCh* namespaceURI, const XMLCh* elementLocalName)\r
-            : AbstractXMLObject(namespaceURI,elementLocalName), m_dom(NULL), m_document(NULL) {}\r
+        AbstractDOMCachingXMLObject(const XMLCh* namespaceURI, const XMLCh* elementLocalName, const XMLCh* namespacePrefix)\r
+            : AbstractXMLObject(namespaceURI,elementLocalName, namespacePrefix), m_dom(NULL), m_document(NULL) {}\r
 \r
     private:\r
         DOMElement* m_dom;\r