Use __libc_fatal() for failed malloc in new

This way we can print a useful message to the log isntead of just dying
mysteriously.

(cherry picked from commit 989725940e765f0065b2bc06b881cde864b62595)

Bug: 13564922
Change-Id: I704e1263ec1e7556808348b821a20bacc934eb4a
This commit is contained in:
Dan Albert 2014-05-30 16:00:53 -07:00 committed by Elliott Hughes
parent 430cf1a6c3
commit acc2f79ed7

View File

@ -14,15 +14,18 @@
* limitations under the License.
*/
#include <errno.h>
#include <new>
#include <stdlib.h>
#include "private/libc_logging.h"
const std::nothrow_t std::nothrow = {};
void* operator new(std::size_t size) {
void* p = malloc(size);
if (p == NULL) {
abort();
__libc_fatal("new failed to allocate %zu bytes", size);
}
return p;
}
@ -30,7 +33,7 @@ void* operator new(std::size_t size) {
void* operator new[](std::size_t size) {
void* p = malloc(size);
if (p == NULL) {
abort();
__libc_fatal("new[] failed to allocate %zu bytes", size);
}
return p;
}