You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by jp...@locus.apache.org on 2000/07/07 20:41:54 UTC
cvs commit: xml-xerces/c/src/dom DocumentImpl.cpp NodeImpl.cpp
jpolast 00/07/07 11:41:53
Modified: c/src/dom DocumentImpl.cpp NodeImpl.cpp
Log:
userData fixes (delete from hashtable when node is deleted)
Revision Changes Path
1.27 +10 -4 xml-xerces/c/src/dom/DocumentImpl.cpp
Index: DocumentImpl.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/dom/DocumentImpl.cpp,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- DocumentImpl.cpp 2000/06/28 17:51:37 1.26
+++ DocumentImpl.cpp 2000/07/07 18:41:53 1.27
@@ -55,7 +55,7 @@
*/
/*
- * $Id: DocumentImpl.cpp,v 1.26 2000/06/28 17:51:37 jpolast Exp $
+ * $Id: DocumentImpl.cpp,v 1.27 2000/07/07 18:41:53 jpolast Exp $
*/
//
@@ -750,14 +750,20 @@
void DocumentImpl::setUserData(NodeImpl* n, void* data)
{
- if (!userData)
+ if (!userData && data)
userData = new RefHashTableOf<void>(29, false, new HashPtr());
- userData->put((void*)n,data);
+ if (!data && userData)
+ userData->removeKey((void*)n);
+ else
+ userData->put((void*)n,data);
}
void* DocumentImpl::getUserData(NodeImpl* n)
{
- return userData->get((void*)n);
+ if (userData)
+ return userData->get((void*)n);
+ else
+ return null;
}
void* DocumentImpl::getUserData()
1.28 +5 -1 xml-xerces/c/src/dom/NodeImpl.cpp
Index: NodeImpl.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/dom/NodeImpl.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- NodeImpl.cpp 2000/06/28 17:51:38 1.27
+++ NodeImpl.cpp 2000/07/07 18:41:53 1.28
@@ -55,7 +55,7 @@
*/
/*
- * $Id: NodeImpl.cpp,v 1.27 2000/06/28 17:51:38 jpolast Exp $
+ * $Id: NodeImpl.cpp,v 1.28 2000/07/07 18:41:53 jpolast Exp $
*/
// This class doesn't support having any children, and implements the behavior
@@ -126,6 +126,10 @@
NodeImpl::~NodeImpl() {
+ if (getUserData())
+ {
+ setUserData(null);
+ }
NodeImpl::gLiveNodeImpls--;
};