Hi All!,
I am experiencing a confusing problem! I am developing a windows application that makes use of the Xerces compiler, I am overriding the SAX error handler interface in order to intercept exceptions from the parser. Within the error handling method I transcode the systemID in order to get the filename. I am then responsible for deleting this area of memory when I have finished with it, but the problem is that as soon as I call delete the program crashes! It would appear that there is a problem with the allocation of memory. Is this a bug? or am I missing the point on how to handle error exceptions ? Many thanks for your time Neil void TransXChangeErrorHandler::warning(const SAXParseException& e) // // Argument: // None // // // Parameters: // 1 - Sax parse exception // Entry: // Exit : Unchanged // { // // LOCAL DATA DEFINITIONS : // char* Pvl_errorFile_c; // Error filename char* Pvl_errorMesg_c; // Error message // // EXECUTABLE CODE // // // Set error flag // fSawErrors = true; // // Transcode error filename // Pvl_errorFile_c = XMLString::transcode(e.getSystemId()); // // Transcode error message // Pvl_errorMesg_c = XMLString::transcode(e.getMessage()); // // Output error // fprintf (Pvl_outputFile, "**ERROR**:@: Warning at file: %s\n", Pvl_errorFile_c); fprintf (Pvl_outputFile, "**ERROR**:@: Line: %d\n", e.getLineNumber()); fprintf (Pvl_outputFile, "**ERROR**:@: Char: %d\n", e.getColumnNumber()); fprintf (Pvl_outputFile, "**ERROR**:@: Message: %s\n", Pvl_errorMesg_c); cerr << "\nWarning at file: " << Pvl_errorFile_c << endl; cerr << "\nLine: " << e.getLineNumber() << endl; cerr << "\nChar: " << e.getColumnNumber() << endl; cerr << "\nMessage: " << Pvl_errorMesg_c << endl; // // Free memory // delete [] Pvl_errorFile_c; // Crashes at this point delete [] Pvl_errorMesg_c; --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]