From 5d89d36b56386c8793bca4ab358b00f6ccfc1e45 Mon Sep 17 00:00:00 2001
From: Alberto Massari <amassari@apache.org>
Date: Mon, 18 Dec 2006 11:22:05 +0000
Subject: [PATCH] The 'dst' argument in the DOMUserDataHandler::handle callabck
 is non-const, in order to let the application modify the newly created node
 (jira#783)

git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@488229 13f79535-47bb-0310-9956-ffa450edef68
---
 src/xercesc/dom/DOMUserDataHandler.hpp   | 4 ++--
 src/xercesc/dom/impl/DOMDocumentImpl.cpp | 2 +-
 src/xercesc/dom/impl/DOMDocumentImpl.hpp | 2 +-
 src/xercesc/dom/impl/DOMNodeImpl.cpp     | 2 +-
 src/xercesc/dom/impl/DOMNodeImpl.hpp     | 2 +-
 tests/src/DOM/DOMTest/DTest.h            | 4 ++--
 6 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/xercesc/dom/DOMUserDataHandler.hpp b/src/xercesc/dom/DOMUserDataHandler.hpp
index 68654cce5..f4de9f03f 100644
--- a/src/xercesc/dom/DOMUserDataHandler.hpp
+++ b/src/xercesc/dom/DOMUserDataHandler.hpp
@@ -34,7 +34,7 @@ XERCES_CPP_NAMESPACE_BEGIN
  * the application to implement various behaviors regarding the data it
  * associates to the DOM nodes. This interface defines that handler.
  *
- * <p>See also the <a href='http://www.w3.org/2001/07/WD-DOM-Level-3-Core-20010726'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
  * @since DOM Level 3
  */
 class CDOM_EXPORT DOMUserDataHandler {
@@ -128,7 +128,7 @@ public:
                         const XMLCh* const key,
                         void* data,
                         const DOMNode* src,
-                        const DOMNode* dst) = 0;
+                        DOMNode* dst) = 0;
 
     //@}
 
diff --git a/src/xercesc/dom/impl/DOMDocumentImpl.cpp b/src/xercesc/dom/impl/DOMDocumentImpl.cpp
index 1f4330968..c49f0edc5 100644
--- a/src/xercesc/dom/impl/DOMDocumentImpl.cpp
+++ b/src/xercesc/dom/impl/DOMDocumentImpl.cpp
@@ -1305,7 +1305,7 @@ void* DOMDocumentImpl::getUserData(const DOMNodeImpl* n, const XMLCh* key) const
     return 0;
 }
 
-void DOMDocumentImpl::callUserDataHandlers(const DOMNodeImpl* n, DOMUserDataHandler::DOMOperationType operation, const DOMNode* src, const DOMNode* dst) const
+void DOMDocumentImpl::callUserDataHandlers(const DOMNodeImpl* n, DOMUserDataHandler::DOMOperationType operation, const DOMNode* src, DOMNode* dst) const
 {
     if (fUserDataTable) {
         RefHash2KeysTableOfEnumerator<DOMUserDataRecord> userDataEnum(fUserDataTable, false, fMemoryManager);
diff --git a/src/xercesc/dom/impl/DOMDocumentImpl.hpp b/src/xercesc/dom/impl/DOMDocumentImpl.hpp
index e98678a5d..683e00fea 100644
--- a/src/xercesc/dom/impl/DOMDocumentImpl.hpp
+++ b/src/xercesc/dom/impl/DOMDocumentImpl.hpp
@@ -232,7 +232,7 @@ public:
     void                         callUserDataHandlers(const DOMNodeImpl* n,
                                                       DOMUserDataHandler::DOMOperationType operation,
                                                       const DOMNode* src,
-                                                      const DOMNode* dst) const;
+                                                      DOMNode* dst) const;
     void                         transferUserData(DOMNodeImpl* n1, DOMNodeImpl* n2);
 
     DOMNode*                     renameNode(DOMNode* n,
diff --git a/src/xercesc/dom/impl/DOMNodeImpl.cpp b/src/xercesc/dom/impl/DOMNodeImpl.cpp
index 8a6a4ad44..50f5dea56 100644
--- a/src/xercesc/dom/impl/DOMNodeImpl.cpp
+++ b/src/xercesc/dom/impl/DOMNodeImpl.cpp
@@ -388,7 +388,7 @@ void* DOMNodeImpl::getUserData(const XMLCh* key) const
 
 void DOMNodeImpl::callUserDataHandlers(DOMUserDataHandler::DOMOperationType operation,
                                        const DOMNode* src,
-                                       const DOMNode* dst) const
+                                       DOMNode* dst) const
 {
     DOMDocumentImpl* doc=(DOMDocumentImpl*)getOwnerDocument();
     if (doc)
diff --git a/src/xercesc/dom/impl/DOMNodeImpl.hpp b/src/xercesc/dom/impl/DOMNodeImpl.hpp
index 4834b2663..5e0e79ad3 100644
--- a/src/xercesc/dom/impl/DOMNodeImpl.hpp
+++ b/src/xercesc/dom/impl/DOMNodeImpl.hpp
@@ -133,7 +133,7 @@ public:
     void              release();
     void              callUserDataHandlers(DOMUserDataHandler::DOMOperationType operation,
                                            const DOMNode* src,
-                                           const DOMNode* dst) const;
+                                           DOMNode* dst) const;
     //reverses the bit pattern given by compareDocumentPosition
     short             reverseTreeOrderBitPattern(short pattern) const;
     const DOMNode*    getTreeParentNode(const DOMNode* node) const;
diff --git a/tests/src/DOM/DOMTest/DTest.h b/tests/src/DOM/DOMTest/DTest.h
index 181d32e9f..3e985454e 100644
--- a/tests/src/DOM/DOMTest/DTest.h
+++ b/tests/src/DOM/DOMTest/DTest.h
@@ -129,13 +129,13 @@ public:
                 const XMLCh* const key,
                 void* data,
                 const DOMNode* src,
-                const DOMNode* dst)
+                DOMNode* dst)
     {
         currentType = operation;
         currentKey = (XMLCh*) key;
         currentData = data;
         currentSrc = (DOMNode*) src;
-        currentDst = (DOMNode*) dst;
+        currentDst = dst;
     };
 
     DOMOperationType getCurrentType() {
-- 
GitLab