From 9bd4fea59bb12616074932b4f9abcd6d548cb2ed Mon Sep 17 00:00:00 2001 From: PeiYong Zhang <peiyongz@apache.org> Date: Thu, 1 Apr 2004 22:00:55 +0000 Subject: [PATCH] to retrieve Memory Manager git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@175848 13f79535-47bb-0310-9956-ffa450edef68 --- src/xercesc/dom/DOMNamedNodeMap.hpp | 2 ++ src/xercesc/dom/DOMNode.hpp | 21 ++++++++++++++++++++- src/xercesc/dom/DOMNodeIterator.hpp | 2 ++ src/xercesc/dom/DOMTreeWalker.hpp | 2 ++ 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/xercesc/dom/DOMNamedNodeMap.hpp b/src/xercesc/dom/DOMNamedNodeMap.hpp index 0a255a7b9..8645dcca4 100644 --- a/src/xercesc/dom/DOMNamedNodeMap.hpp +++ b/src/xercesc/dom/DOMNamedNodeMap.hpp @@ -278,6 +278,8 @@ public: }; +#define GetDOMNamedNodeMapMemoryManager GET_INDIRECT_MM(fOwnerNode) + XERCES_CPP_NAMESPACE_END #endif diff --git a/src/xercesc/dom/DOMNode.hpp b/src/xercesc/dom/DOMNode.hpp index 3e06cd82e..ae3ae1465 100644 --- a/src/xercesc/dom/DOMNode.hpp +++ b/src/xercesc/dom/DOMNode.hpp @@ -1019,7 +1019,26 @@ public: //@} #endif }; - + +/*** + * Utilities macros for getting memory manager within DOM +***/ +#define GET_OWNER_DOCUMENT(ptr) \ + ((DOMDocumentImpl*)(ptr->getOwnerDocument())) + +#define GET_DIRECT_MM(ptr) \ + ptr ? ((DOMDocumentImpl*)ptr)->getMemoryManager() : XMLPlatformUtils::fgMemoryManager + +#define GET_INDIRECT_MM(ptr) \ + !ptr ? XMLPlatformUtils::fgMemoryManager : \ + GET_OWNER_DOCUMENT(ptr) ? GET_OWNER_DOCUMENT(ptr)->getMemoryManager() : \ + XMLPlatformUtils::fgMemoryManager + +/*** + * For DOMNode and its derivatives +***/ +#define GetDOMNodeMemoryManager GET_INDIRECT_MM(this) + XERCES_CPP_NAMESPACE_END #endif diff --git a/src/xercesc/dom/DOMNodeIterator.hpp b/src/xercesc/dom/DOMNodeIterator.hpp index 9818ba13c..ddba4fd7f 100644 --- a/src/xercesc/dom/DOMNodeIterator.hpp +++ b/src/xercesc/dom/DOMNodeIterator.hpp @@ -228,6 +228,8 @@ public: //@} }; +#define GetDOMNodeIteratorMemoryManager GET_DIRECT_MM(fDocument) + XERCES_CPP_NAMESPACE_END #endif diff --git a/src/xercesc/dom/DOMTreeWalker.hpp b/src/xercesc/dom/DOMTreeWalker.hpp index aba341450..8fbdf221f 100644 --- a/src/xercesc/dom/DOMTreeWalker.hpp +++ b/src/xercesc/dom/DOMTreeWalker.hpp @@ -308,6 +308,8 @@ public: //@} }; +#define GetDOMTreeWalkerMemoryManager GET_INDIRECT_MM(fCurrentNode) + XERCES_CPP_NAMESPACE_END #endif -- GitLab