8012902: remove use of global operator new - take 2

The fix of 8010992, disable use of global operator new and new[] which caused failure on some tests. This takes two of the bugs also add ALLOW_OPERATOR_NEW_USAGE to prevent crash for third party code calling operator new of jvm on certain platforms.

Reviewed-by: coleenp, dholmes, zgu
This commit is contained in:
Yumin Qi 2013-05-14 09:41:12 -07:00 committed by Yumin Qi
parent b3675a00d9
commit 98151c30c8
28 changed files with 287 additions and 101 deletions

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -281,7 +281,7 @@ class HandleArea: public Arena {
// across the HandleMark boundary.
// The base class of HandleMark should have been StackObj but we also heap allocate
// a HandleMark when a thread is created.
// a HandleMark when a thread is created. The operator new is for this special case.
class HandleMark {
private:
@ -308,6 +308,11 @@ class HandleMark {
void push();
// called in the destructor of HandleMarkCleaner
void pop_and_restore();
// overloaded operators
void* operator new(size_t size);
void* operator new [](size_t size);
void operator delete(void* p);
void operator delete[](void* p);
};
//------------------------------------------------------------------------------------------------------------------------