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

@ -23,6 +23,8 @@
*/
#include "precompiled.hpp"
#include "memory/allocation.hpp"
#include "memory/allocation.inline.hpp"
#include "memory/memRegion.hpp"
#include "runtime/globals.hpp"
@ -99,3 +101,19 @@ MemRegion MemRegion::minus(const MemRegion mr2) const {
ShouldNotReachHere();
return MemRegion();
}
void* MemRegion::operator new(size_t size) {
return (address)AllocateHeap(size, mtGC, 0, AllocFailStrategy::RETURN_NULL);
}
void* MemRegion::operator new [](size_t size) {
return (address)AllocateHeap(size, mtGC, 0, AllocFailStrategy::RETURN_NULL);
}
void MemRegion::operator delete(void* p) {
FreeHeap(p, mtGC);
}
void MemRegion::operator delete [](void* p) {
FreeHeap(p, mtGC);
}