mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 03:24:38 +02:00
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:
parent
b3675a00d9
commit
98151c30c8
28 changed files with 287 additions and 101 deletions
|
@ -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);
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------------
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue