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 VAN DYCK Pieter <Pi...@eurocontrol.int> on 2001/08/29 10:01:56 UTC

Xerces 1.5.1 : Handling of broken new operator in MSVC

While digging into another issue, I noticed that the library code apparently
relies on the new operator throwing an exception in case of failure.

A simple example of this can be found in
src/util/Transcoders/Win32/Win32TransService.cpp on or about line 881 of the
1.5.1 release.
A more serious example occurs in the for loop of "DOMStringHandle::operator
new" and the code that uses this operator.

While this is ANSI behaviour, it isn't the default with the MSVC compiler up
to and including VC6. It doesn't matter if you switch 'MS extentions' on or
off, the default new operator will always return 0 on failure.
This will likely cause uncontrolled unpleasantness in a low memory
situation.

To make things interesting ... if you use MFC, the problem disappears, since
MFC redefines the global operator new to throw an exception in stead.


Please tell me if I missed something.

cheers,
Pieter

**** DISCLAIMER **** 
"This e-mail and any attachments thereto may contain information which is
confidential and/or protected by intellectual property rights and are
intended for the sole use of the recipient(s) named above. 
Any use of the information contained herein (including, but not limited to,
total or partial reproduction, communication or distribution in any form) by
persons other than the designated recipient(s) is prohibited. 
If you have received this e-mail in error, please notify the sender either
by telephone or by e-mail and delete the material from any computer. 
Thank you for your cooperation."

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