tng         2002/08/16 06:39:27

  Modified:    c/src/xercesc/dom/impl DOMAttrImpl.cpp DOMAttrNSImpl.cpp
                        DOMCDATASectionImpl.cpp DOMCommentImpl.cpp
                        DOMDocumentFragmentImpl.cpp DOMDocumentImpl.cpp
                        DOMDocumentTypeImpl.cpp DOMElementImpl.cpp
                        DOMElementNSImpl.cpp DOMEntityImpl.cpp
                        DOMEntityReferenceImpl.cpp DOMNotationImpl.cpp
                        DOMProcessingInstructionImpl.cpp DOMTextImpl.cpp
  Log:
  [BUg 11360] Release user data using handler.
  
  Revision  Changes    Path
  1.7       +2 -1      xml-xerces/c/src/xercesc/dom/impl/DOMAttrImpl.cpp
  
  Index: DOMAttrImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMAttrImpl.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- DOMAttrImpl.cpp   15 Jul 2002 19:22:22 -0000      1.6
  +++ DOMAttrImpl.cpp   16 Aug 2002 13:39:27 -0000      1.7
  @@ -251,6 +251,7 @@
   
       DOMDocumentImpl* doc = (DOMDocumentImpl*) getOwnerDocument();
       if (doc) {
  +        fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0);
           fParent.release();
           doc->release(this, DOMDocumentImpl::ATTR_OBJECT);
       }
  
  
  
  1.6       +3 -2      xml-xerces/c/src/xercesc/dom/impl/DOMAttrNSImpl.cpp
  
  Index: DOMAttrNSImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMAttrNSImpl.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DOMAttrNSImpl.cpp 12 Aug 2002 19:58:57 -0000      1.5
  +++ DOMAttrNSImpl.cpp 16 Aug 2002 13:39:27 -0000      1.6
  @@ -177,6 +177,7 @@
   
       DOMDocumentImpl* doc = (DOMDocumentImpl*) getOwnerDocument();
       if (doc) {
  +        fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0);
           fParent.release();
           doc->release(this, DOMDocumentImpl::ATTR_NS_OBJECT);
       }
  @@ -242,7 +243,7 @@
       const XMLCh * URI = xmlnsAlone ? xmlnsURI
           : DOMNodeImpl::mapPrefix
             (
  -              fPrefix, 
  +              fPrefix,
                 (XMLString::stringLen(namespaceURI) == 0) ? 0 : namespaceURI,
                 DOMNode::ATTRIBUTE_NODE
             );
  
  
  
  1.8       +2 -1      xml-xerces/c/src/xercesc/dom/impl/DOMCDATASectionImpl.cpp
  
  Index: DOMCDATASectionImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMCDATASectionImpl.cpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- DOMCDATASectionImpl.cpp   8 Aug 2002 14:15:47 -0000       1.7
  +++ DOMCDATASectionImpl.cpp   16 Aug 2002 13:39:27 -0000      1.8
  @@ -180,6 +180,7 @@
       DOMDocumentImpl* doc = (DOMDocumentImpl*) getOwnerDocument();
   
       if (doc) {
  +        fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0);
           fParent.release();
           fCharacterData.releaseBuffer();
           doc->release(this, DOMDocumentImpl::CDATA_SECTION_OBJECT);
  
  
  
  1.8       +2 -1      xml-xerces/c/src/xercesc/dom/impl/DOMCommentImpl.cpp
  
  Index: DOMCommentImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMCommentImpl.cpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- DOMCommentImpl.cpp        8 Aug 2002 14:15:47 -0000       1.7
  +++ DOMCommentImpl.cpp        16 Aug 2002 13:39:27 -0000      1.8
  @@ -113,6 +113,7 @@
   
       DOMDocumentImpl* doc = (DOMDocumentImpl*) getOwnerDocument();
       if (doc) {
  +        fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0);
           fCharacterData.releaseBuffer();
           doc->release(this, DOMDocumentImpl::COMMENT_OBJECT);
       }
  
  
  
  1.6       +2 -1      xml-xerces/c/src/xercesc/dom/impl/DOMDocumentFragmentImpl.cpp
  
  Index: DOMDocumentFragmentImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMDocumentFragmentImpl.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DOMDocumentFragmentImpl.cpp       15 Jul 2002 19:22:22 -0000      1.5
  +++ DOMDocumentFragmentImpl.cpp       16 Aug 2002 13:39:27 -0000      1.6
  @@ -123,6 +123,7 @@
   
       DOMDocumentImpl* doc = (DOMDocumentImpl*) getOwnerDocument();
       if (doc) {
  +        fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0);
           fParent.release();
           doc->release(this, DOMDocumentImpl::DOCUMENT_FRAGMENT_OBJECT);
       }
  
  
  
  1.18      +6 -1      xml-xerces/c/src/xercesc/dom/impl/DOMDocumentImpl.cpp
  
  Index: DOMDocumentImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMDocumentImpl.cpp,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- DOMDocumentImpl.cpp       12 Aug 2002 13:24:10 -0000      1.17
  +++ DOMDocumentImpl.cpp       16 Aug 2002 13:39:27 -0000      1.18
  @@ -1167,6 +1167,10 @@
                       void* data = userDataRecord->getKey();
                       handler->handle(operation, key, data, src, dst);
                   }
  +
  +                // if the operation is deleted, we in fact should remove the data 
from the table
  +                if (operation == DOMUserDataHandler::NODE_DELETED)
  +                    node_userDataTable->removeKey((void*)key);
               }
           }
       }
  @@ -1206,6 +1210,7 @@
   void DOMDocumentImpl::release()
   {
       DOMDocument* doc = (DOMDocument*) this;
  +    fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0);
   
       // release the docType as well
       if (fDocType) {
  
  
  
  1.11      +6 -2      xml-xerces/c/src/xercesc/dom/impl/DOMDocumentTypeImpl.cpp
  
  Index: DOMDocumentTypeImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMDocumentTypeImpl.cpp,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- DOMDocumentTypeImpl.cpp   26 Jul 2002 20:31:23 -0000      1.10
  +++ DOMDocumentTypeImpl.cpp   16 Aug 2002 13:39:27 -0000      1.11
  @@ -386,6 +386,7 @@
       if (fNode.isOwned()) {
           if (fNode.isToBeReleased()) {
               if (fIsCreatedFromHeap) {
  +                fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0);
                   DOMDocumentType* docType = this;
                   delete docType;
               }
  @@ -395,13 +396,16 @@
       }
       else {
           if (fIsCreatedFromHeap) {
  +            fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0);
               DOMDocumentType* docType = this;
               delete docType;
           }
           else {
               DOMDocumentImpl* doc = (DOMDocumentImpl*) getOwnerDocument();
  -            if (doc)
  +            if (doc) {
  +                fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0);
                   doc->release(this, DOMDocumentImpl::DOCUMENT_TYPE_OBJECT);
  +            }
               else {
                   // shouldn't reach here
                   throw DOMException(DOMException::INVALID_ACCESS_ERR,0);
  
  
  
  1.11      +2 -1      xml-xerces/c/src/xercesc/dom/impl/DOMElementImpl.cpp
  
  Index: DOMElementImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMElementImpl.cpp,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- DOMElementImpl.cpp        8 Aug 2002 14:15:47 -0000       1.10
  +++ DOMElementImpl.cpp        16 Aug 2002 13:39:27 -0000      1.11
  @@ -455,6 +455,7 @@
   
       DOMDocumentImpl* doc = (DOMDocumentImpl*) getOwnerDocument();
       if (doc) {
  +        fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0);
           fParent.release();
           doc->release(this, DOMDocumentImpl::ELEMENT_OBJECT);
       }
  
  
  
  1.6       +4 -3      xml-xerces/c/src/xercesc/dom/impl/DOMElementNSImpl.cpp
  
  Index: DOMElementNSImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMElementNSImpl.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DOMElementNSImpl.cpp      12 Aug 2002 19:58:57 -0000      1.5
  +++ DOMElementNSImpl.cpp      16 Aug 2002 13:39:27 -0000      1.6
  @@ -170,6 +170,7 @@
   
       DOMDocumentImpl* doc = (DOMDocumentImpl*) getOwnerDocument();
       if (doc) {
  +        fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0);
           fParent.release();
           doc->release(this, DOMDocumentImpl::ELEMENT_NS_OBJECT);
       }
  @@ -215,11 +216,11 @@
           if (index >= 3999)
               delete[] newName;
       }
  - 
  +
       // DOM Level 3: namespace URI is never empty string.
       const XMLCh * URI = DOMNodeImpl::mapPrefix
           (
  -            fPrefix, 
  +            fPrefix,
               (XMLString::stringLen(namespaceURI) == 0) ? 0 : namespaceURI,
               DOMNode::ELEMENT_NODE
           );
  
  
  
  1.8       +2 -1      xml-xerces/c/src/xercesc/dom/impl/DOMEntityImpl.cpp
  
  Index: DOMEntityImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMEntityImpl.cpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- DOMEntityImpl.cpp 30 Jul 2002 13:31:07 -0000      1.7
  +++ DOMEntityImpl.cpp 16 Aug 2002 13:39:27 -0000      1.8
  @@ -234,6 +234,7 @@
   
       DOMDocumentImpl* doc = (DOMDocumentImpl*) getOwnerDocument();
       if (doc) {
  +        fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0);
           fParent.release();
           doc->release(this, DOMDocumentImpl::ENTITY_OBJECT);
       }
  
  
  
  1.6       +2 -1      xml-xerces/c/src/xercesc/dom/impl/DOMEntityReferenceImpl.cpp
  
  Index: DOMEntityReferenceImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMEntityReferenceImpl.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DOMEntityReferenceImpl.cpp        15 Jul 2002 19:22:22 -0000      1.5
  +++ DOMEntityReferenceImpl.cpp        16 Aug 2002 13:39:27 -0000      1.6
  @@ -163,6 +163,7 @@
   
       DOMDocumentImpl* doc = (DOMDocumentImpl*) getOwnerDocument();
       if (doc) {
  +        fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0);
           fParent.release();
           doc->release(this, DOMDocumentImpl::ENTITY_REFERENCE_OBJECT);
       }
  
  
  
  1.6       +4 -2      xml-xerces/c/src/xercesc/dom/impl/DOMNotationImpl.cpp
  
  Index: DOMNotationImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMNotationImpl.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DOMNotationImpl.cpp       15 Jul 2002 19:22:22 -0000      1.5
  +++ DOMNotationImpl.cpp       16 Aug 2002 13:39:27 -0000      1.6
  @@ -149,8 +149,10 @@
           throw DOMException(DOMException::INVALID_ACCESS_ERR,0);
   
       DOMDocumentImpl* doc = (DOMDocumentImpl*) getOwnerDocument();
  -    if (doc)
  +    if (doc) {
  +        fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0);
           doc->release(this, DOMDocumentImpl::NOTATION_OBJECT);
  +    }
       else {
           // shouldn't reach here
           throw DOMException(DOMException::INVALID_ACCESS_ERR,0);
  
  
  
  1.6       +4 -2      
xml-xerces/c/src/xercesc/dom/impl/DOMProcessingInstructionImpl.cpp
  
  Index: DOMProcessingInstructionImpl.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMProcessingInstructionImpl.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DOMProcessingInstructionImpl.cpp  15 Jul 2002 19:22:22 -0000      1.5
  +++ DOMProcessingInstructionImpl.cpp  16 Aug 2002 13:39:27 -0000      1.6
  @@ -167,8 +167,10 @@
           throw DOMException(DOMException::INVALID_ACCESS_ERR,0);
   
       DOMDocumentImpl* doc = (DOMDocumentImpl*) getOwnerDocument();
  -    if (doc)
  +    if (doc) {
  +        fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0);
           doc->release(this, DOMDocumentImpl::PROCESSING_INSTRUCTION_OBJECT);
  +    }
       else {
           // shouldn't reach here
           throw DOMException(DOMException::INVALID_ACCESS_ERR,0);
  
  
  
  1.8       +2 -1      xml-xerces/c/src/xercesc/dom/impl/DOMTextImpl.cpp
  
  Index: DOMTextImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMTextImpl.cpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- DOMTextImpl.cpp   8 Aug 2002 14:15:47 -0000       1.7
  +++ DOMTextImpl.cpp   16 Aug 2002 13:39:27 -0000      1.8
  @@ -184,6 +184,7 @@
   
       DOMDocumentImpl* doc = (DOMDocumentImpl*) getOwnerDocument();
       if (doc) {
  +        fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0);
           fCharacterData.releaseBuffer();
           doc->release(this, DOMDocumentImpl::TEXT_OBJECT);
       }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to