components/stdcxx/patches/085-memory.cpp.patch
changeset 402 94ae4d75524c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/stdcxx/patches/085-memory.cpp.patch	Thu Jul 14 11:26:11 2011 -0700
@@ -0,0 +1,47 @@
+--- stdcxx-4.2.1/src/memory.cpp	2008-04-24 17:25:19.000000000 -0700
++++ stdcxx-4.2.1/src/memory.cpp	2011-03-19 14:22:20.379428656 -0700
+@@ -29,22 +29,23 @@
+ 
+ #define _RWSTD_LIB_SRC
+ 
++#include <rw/_defs.h>
+ #include <rw/_error.h>
+ #include <rw/_mutex.h>
+ 
+ #include <new>
+ #include <stdlib.h>
+-
+-#include <rw/_defs.h>
+-
++#include <string.h>
+ 
+ _RWSTD_NAMESPACE (__rw) {
+ 
+-
+ _RWSTD_EXPORT void*
+ __rw_allocate (_RWSTD_SIZE_T nbytes, int /* = 0 */)
+ {
+-    void *ptr = 0;
++    void *ptr = 0UL;
++
++    if (0 == nbytes)
++	return ptr;
+ 
+     _TRY {
+ 
+@@ -65,12 +66,14 @@
+     }
+     _CATCH (...) {
+         // prevent bad_alloc raised by the compiler
++	ptr = 0UL;
+     }
+ 
+     // fix broken ::operator new ()
+-    if (0 == ptr)
++    if (0UL == ptr)
+         _RW::__rw_throw (_RWSTD_ERROR_FIRST + 3 /* == bad_alloc */);
+ 
++    (void) memset (ptr, '\0', nbytes);
+     return ptr;
+ }
+