tng 2003/02/05 10:56:02
Modified: c/doc faq-build.xml faq-parse.xml
program-deprecateddom.xml program-dom.xml
program-sax.xml program-sax2.xml
Log:
[Bug 11915] Utility for freeing memory.
Revision Changes Path
1.14 +11 -3 xml-xerces/c/doc/faq-build.xml
Index: faq-build.xml
===================================================================
RCS file: /home/cvs/xml-xerces/c/doc/faq-build.xml,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- faq-build.xml 10 Jan 2003 15:47:05 -0000 1.13
+++ faq-build.xml 5 Feb 2003 18:56:00 -0000 1.14
@@ -300,13 +300,21 @@
<faq title="Why does deleting a transcoded string result in assertion on
windows?">
<q>Why does deleting a transcoded string result in assertion on windows?</q>
<a>
- <p>Both your application program and the Xerces DLL must use the same *DLL*
version of the
+ <p>Both your application program and the &XercesCName; DLL must use the same
*DLL* version of the
runtime library. If either statically links to the runtime library, the
- problem will still occur.
+ problem will still occur.</p>
- For example, for a Win32/VC6 build, the runtime library build setting MUST
+ <p>For example, for a Win32/VC6 build, the runtime library build setting MUST
be "Multithreaded DLL" for release builds and "Debug Multithreaded
DLL" for
debug builds.</p>
+
+ <p>Or for example for a Win32/BCB6 build, application need to switch to
Multithreaded
+ runtime to avoid such memory access violation.</p>
+
+ <p>To bypass such problem, instead of calling operator delete[] directly, you
can use the
+ provided function XMLString::release to delete any string that was
allocated by the parser.
+ This will ensure the string is allocated and deleted by the same DLL and
such assertion
+ problem should be resolved.</p>
</a>
</faq>
1.55 +5 -0 xml-xerces/c/doc/faq-parse.xml
Index: faq-parse.xml
===================================================================
RCS file: /home/cvs/xml-xerces/c/doc/faq-parse.xml,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -r1.54 -r1.55
--- faq-parse.xml 24 Jan 2003 19:59:56 -0000 1.54
+++ faq-parse.xml 5 Feb 2003 18:56:00 -0000 1.55
@@ -585,6 +585,11 @@
<p>Or for example for a Win32/BCB6 build, application need to switch to
Multithreaded
runtime to avoid such memory access violation.</p>
+
+ <p>To bypass such problem, instead of calling operator delete[] directly, you
can use the
+ provided function XMLString::release to delete any string that was
allocated by the parser.
+ This will ensure the string is allocated and deleted by the same DLL and
such assertion
+ problem should be resolved.</p>
</a>
</faq>
1.9 +2 -2 xml-xerces/c/doc/program-deprecateddom.xml
Index: program-deprecateddom.xml
===================================================================
RCS file: /home/cvs/xml-xerces/c/doc/program-deprecateddom.xml,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- program-deprecateddom.xml 6 Jan 2003 21:19:42 -0000 1.8
+++ program-deprecateddom.xml 5 Feb 2003 18:56:00 -0000 1.9
@@ -282,7 +282,7 @@
char* message = XMLString::transcode(toCatch.getMessage());
cout << "Error during initialization! :\n"
<< message << "\n";
- delete [] message;
+ XMLString::release(&message);
return 1;
}
@@ -301,7 +301,7 @@
char* message = XMLString::transcode(toCatch.getMessage());
cout << "Exception message is: \n"
<< message << "\n";
- delete [] message;
+ XMLString::release(&message);
return -1;
}
catch (const DOM_DOMException& toCatch) {
1.30 +17 -17 xml-xerces/c/doc/program-dom.xml
Index: program-dom.xml
===================================================================
RCS file: /home/cvs/xml-xerces/c/doc/program-dom.xml,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- program-dom.xml 31 Jan 2003 15:50:02 -0000 1.29
+++ program-dom.xml 5 Feb 2003 18:56:00 -0000 1.30
@@ -210,7 +210,7 @@
printf("Use your own copy of the oldNodeValue if want to reference the
string later\n");
// delete your own replicated string when done
- delete [] oldNodeValue;
+ XMLString::release(&oldNodeValue);
</source>
@@ -243,7 +243,7 @@
printf("Use your own copy of the oldNodeValue if want to reference the
string later\n");
// delete your own replicated string when done
- delete [] oldNodeValue;
+ XMLString::release(&oldNodeValue);
</source>
@@ -280,7 +280,7 @@
char* message = XMLString::transcode(toCatch.getMessage());
cout << "Error during initialization! :\n"
<< message << "\n";
- delete [] message;
+ XMLString::release(&message);
return 1;
}
@@ -300,14 +300,14 @@
char* message = XMLString::transcode(toCatch.getMessage());
cout << "Exception message is: \n"
<< message << "\n";
- delete [] message;
+ XMLString::release(&message);
return -1;
}
catch (const DOMException& toCatch) {
char* message = XMLString::transcode(toCatch.msg);
cout << "Exception message is: \n"
<< message << "\n";
- delete [] message;
+ XMLString::release(&message);
return -1;
}
catch (...) {
@@ -657,7 +657,7 @@
char* message = XMLString::transcode(toCatch.getMessage());
cout << "Error during initialization! :\n"
<< message << "\n";
- delete [] message;
+ XMLString::release(&message);
return 1;
}
@@ -691,14 +691,14 @@
char* message = XMLString::transcode(toCatch.getMessage());
cout << "Exception message is: \n"
<< message << "\n";
- delete [] message;
+ XMLString::release(&message);
return -1;
}
catch (const DOMException& toCatch) {
char* message = XMLString::transcode(toCatch.msg);
cout << "Exception message is: \n"
<< message << "\n";
- delete [] message;
+ XMLString::release(&message);
return -1;
}
catch (...) {
@@ -1295,14 +1295,14 @@
char* message = XMLString::transcode(toCatch.getMessage());
cout << "Exception message is: \n"
<< message << "\n";
- delete [] message;
+ XMLString::release(&message);
return -1;
}
catch (const DOMException& toCatch) {
char* message = XMLString::transcode(toCatch.msg);
cout << "Exception message is: \n"
<< message << "\n";
- delete [] message;
+ XMLString::release(&message);
return -1;
}
catch (...) {
@@ -1575,27 +1575,27 @@
</s4>
<s4 title="Xerces Features">
- <anchor name="byte-order-mark"/>
+ <anchor name="byte-order-mark"/>
<table>
<tr><th colspan="2"><em>byte-order-mark</em></th></tr>
- <tr><th><em>true:</em></th><td> Enable the writing of the
Byte-Order-Mark (BOM), in the resultant XML stream.
+ <tr><th><em>true:</em></th><td> Enable the writing of the
Byte-Order-Mark (BOM), in the resultant XML stream.
</td></tr>
<tr><th><em>false:</em></th><td> Disable the writing of BOM.
</td></tr>
- <tr><th><em>note:</em></th><td> The BOM is written at the beginning
of the resultant XML stream,
- if and only if a DOMDocumentNode is
rendered for serialization,
+ <tr><th><em>note:</em></th><td> The BOM is written at the beginning
of the resultant XML stream,
+ if and only if a DOMDocumentNode is
rendered for serialization,
and the output encoding is among
the encodings listed here (alias
acceptable),
UTF-16, UTF-16LE, UTF-16BE, UCS-4,
UCS-4LE, and UCS-4BE.
-
+
In the case of UTF-16/UCS-4, the
system directive, ENDIANMODE_LITTLE
and ENDIANMODE_BIG (which denotes
the host machine's endian mode),
- is refered to determine the
appropriate BOM to be written.
+ is refered to determine the
appropriate BOM to be written.
</td></tr>
<tr><th><em>default:</em></th><td> false </td></tr>
<tr><th><em>see:</em></th><td>
<jump href="http://www.w3.org/TR/REC-xml#sec-guessing"> XML 1.0
Appendix F </jump>
for more information about BOM.
- </td></tr>
+ </td></tr>
</table>
</s4>
</s3>
1.12 +4 -4 xml-xerces/c/doc/program-sax.xml
Index: program-sax.xml
===================================================================
RCS file: /home/cvs/xml-xerces/c/doc/program-sax.xml,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- program-sax.xml 6 Jan 2003 21:19:42 -0000 1.11
+++ program-sax.xml 5 Feb 2003 18:56:01 -0000 1.12
@@ -57,7 +57,7 @@
{
char* message = XMLString::transcode(name);
cout << "I saw element: "<< message << endl;
- delete [] message;
+ XMLString::release(&message);
}
MySAXHandler::fatalError(const SAXParseException& exception)
@@ -99,7 +99,7 @@
char* message = XMLString::transcode(toCatch.getMessage());
cout << "Error during initialization! :\n"
<< message << "\n";
- delete [] message;
+ XMLString::release(&message);
return 1;
}
@@ -120,14 +120,14 @@
char* message = XMLString::transcode(toCatch.getMessage());
cout << "Exception message is: \n"
<< message << "\n";
- delete [] message;
+ XMLString::release(&message);
return -1;
}
catch (const SAXParseException& toCatch) {
char* message = XMLString::transcode(toCatch.getMessage());
cout << "Exception message is: \n"
<< message << "\n";
- delete [] message;
+ XMLString::release(&message);
return -1;
}
catch (...) {
1.17 +4 -4 xml-xerces/c/doc/program-sax2.xml
Index: program-sax2.xml
===================================================================
RCS file: /home/cvs/xml-xerces/c/doc/program-sax2.xml,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- program-sax2.xml 6 Jan 2003 21:19:42 -0000 1.16
+++ program-sax2.xml 5 Feb 2003 18:56:02 -0000 1.17
@@ -64,7 +64,7 @@
{
char* message = XMLString::transcode(name);
cout << "I saw element: "<< message << endl;
- delete [] message;
+ XMLString::release(&message);
}
MySAX2Handler::fatalError(const SAXParseException& exception)
@@ -108,7 +108,7 @@
cout << "Error during initialization! :\n"
cout << "Exception message is: \n"
<< message << "\n";
- delete [] message;
+ XMLString::release(&message);
return 1;
}
@@ -128,14 +128,14 @@
char* message = XMLString::transcode(toCatch.getMessage());
cout << "Exception message is: \n"
<< message << "\n";
- delete [] message;
+ XMLString::release(&message);
return -1;
}
catch (const SAXParseException& toCatch) {
char* message = XMLString::transcode(toCatch.getMessage());
cout << "Exception message is: \n"
<< message << "\n";
- delete [] message;
+ XMLString::release(&message);
return -1;
}
catch (...) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]