You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@xerces.apache.org by bu...@apache.org on 2001/10/27 01:19:20 UTC

DO NOT REPLY [Bug 4467] New: - Accss violations if calling XMLPlatformUtils::Initialize() more than once.

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4467>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4467

Accss violations if calling XMLPlatformUtils::Initialize() more than once.

           Summary: Accss violations if calling
                    XMLPlatformUtils::Initialize() more than once.
           Product: Xerces-C++
           Version: 1.5.2
          Platform: PC
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Utilities
        AssignedTo: xerces-c-dev@xml.apache.org
        ReportedBy: pane@quadrus.com


We've found that if we call XMLPlatformUtils::Initialize() more than once in a 
program we get access violations when we try to make useful calls after the 
second initialization.

The error was traced to a pointer that had been deleted but not NULLed and 
consequently written to, causing the violation. We fixed it by editing the 
XMLDeleteFor class so that fToDelete was of type T** instead of a T*, and then 
modified the cpp file so it was like this:

template <class T> XMLDeleterFor<T>::XMLDeleterFor(T** const toDelete)
{
    fToDelete = toDelete;
}

template <class T> XMLDeleterFor<T>::~XMLDeleterFor()
{
   delete *fToDelete;
   *fToDelete = 0;
}

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-c-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-c-dev-help@xml.apache.org