8305590: Remove nothrow exception specifications from operator new
Reviewed-by: coleenp, kbarrett
This commit is contained in:
parent
8d696aea9e
commit
0f51e63263
@ -494,7 +494,7 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -fcheck-new -fstack-protector"
|
TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -fstack-protector"
|
||||||
TOOLCHAIN_CFLAGS_JDK="-pipe -fstack-protector"
|
TOOLCHAIN_CFLAGS_JDK="-pipe -fstack-protector"
|
||||||
# reduce lib size on linux in link step, this needs also special compile flags
|
# reduce lib size on linux in link step, this needs also special compile flags
|
||||||
# do this on s390x also for libjvm (where serviceability agent is not supported)
|
# do this on s390x also for libjvm (where serviceability agent is not supported)
|
||||||
|
@ -71,11 +71,6 @@ void FreeHeap(void* p) {
|
|||||||
void* MetaspaceObj::_shared_metaspace_base = nullptr;
|
void* MetaspaceObj::_shared_metaspace_base = nullptr;
|
||||||
void* MetaspaceObj::_shared_metaspace_top = nullptr;
|
void* MetaspaceObj::_shared_metaspace_top = nullptr;
|
||||||
|
|
||||||
void* StackObj::operator new(size_t size) throw() { ShouldNotCallThis(); return 0; }
|
|
||||||
void StackObj::operator delete(void* p) { ShouldNotCallThis(); }
|
|
||||||
void* StackObj::operator new [](size_t size) throw() { ShouldNotCallThis(); return 0; }
|
|
||||||
void StackObj::operator delete [](void* p) { ShouldNotCallThis(); }
|
|
||||||
|
|
||||||
void* MetaspaceObj::operator new(size_t size, ClassLoaderData* loader_data,
|
void* MetaspaceObj::operator new(size_t size, ClassLoaderData* loader_data,
|
||||||
size_t word_size,
|
size_t word_size,
|
||||||
MetaspaceObj::Type type, TRAPS) throw() {
|
MetaspaceObj::Type type, TRAPS) throw() {
|
||||||
|
@ -179,13 +179,13 @@ void FreeHeap(void* p);
|
|||||||
|
|
||||||
class CHeapObjBase {
|
class CHeapObjBase {
|
||||||
public:
|
public:
|
||||||
ALWAYSINLINE void* operator new(size_t size, MEMFLAGS f) throw() {
|
ALWAYSINLINE void* operator new(size_t size, MEMFLAGS f) {
|
||||||
return AllocateHeap(size, f);
|
return AllocateHeap(size, f);
|
||||||
}
|
}
|
||||||
|
|
||||||
ALWAYSINLINE void* operator new(size_t size,
|
ALWAYSINLINE void* operator new(size_t size,
|
||||||
MEMFLAGS f,
|
MEMFLAGS f,
|
||||||
const NativeCallStack& stack) throw() {
|
const NativeCallStack& stack) {
|
||||||
return AllocateHeap(size, f, stack);
|
return AllocateHeap(size, f, stack);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -202,13 +202,13 @@ class CHeapObjBase {
|
|||||||
return AllocateHeap(size, f, AllocFailStrategy::RETURN_NULL);
|
return AllocateHeap(size, f, AllocFailStrategy::RETURN_NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
ALWAYSINLINE void* operator new[](size_t size, MEMFLAGS f) throw() {
|
ALWAYSINLINE void* operator new[](size_t size, MEMFLAGS f) {
|
||||||
return AllocateHeap(size, f);
|
return AllocateHeap(size, f);
|
||||||
}
|
}
|
||||||
|
|
||||||
ALWAYSINLINE void* operator new[](size_t size,
|
ALWAYSINLINE void* operator new[](size_t size,
|
||||||
MEMFLAGS f,
|
MEMFLAGS f,
|
||||||
const NativeCallStack& stack) throw() {
|
const NativeCallStack& stack) {
|
||||||
return AllocateHeap(size, f, stack);
|
return AllocateHeap(size, f, stack);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -233,12 +233,12 @@ class CHeapObjBase {
|
|||||||
template<MEMFLAGS F>
|
template<MEMFLAGS F>
|
||||||
class CHeapObj {
|
class CHeapObj {
|
||||||
public:
|
public:
|
||||||
ALWAYSINLINE void* operator new(size_t size) throw() {
|
ALWAYSINLINE void* operator new(size_t size) {
|
||||||
return CHeapObjBase::operator new(size, F);
|
return CHeapObjBase::operator new(size, F);
|
||||||
}
|
}
|
||||||
|
|
||||||
ALWAYSINLINE void* operator new(size_t size,
|
ALWAYSINLINE void* operator new(size_t size,
|
||||||
const NativeCallStack& stack) throw() {
|
const NativeCallStack& stack) {
|
||||||
return CHeapObjBase::operator new(size, F, stack);
|
return CHeapObjBase::operator new(size, F, stack);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -251,12 +251,12 @@ class CHeapObj {
|
|||||||
return CHeapObjBase::operator new(size, F, nt);
|
return CHeapObjBase::operator new(size, F, nt);
|
||||||
}
|
}
|
||||||
|
|
||||||
ALWAYSINLINE void* operator new[](size_t size) throw() {
|
ALWAYSINLINE void* operator new[](size_t size) {
|
||||||
return CHeapObjBase::operator new[](size, F);
|
return CHeapObjBase::operator new[](size, F);
|
||||||
}
|
}
|
||||||
|
|
||||||
ALWAYSINLINE void* operator new[](size_t size,
|
ALWAYSINLINE void* operator new[](size_t size,
|
||||||
const NativeCallStack& stack) throw() {
|
const NativeCallStack& stack) {
|
||||||
return CHeapObjBase::operator new[](size, F, stack);
|
return CHeapObjBase::operator new[](size, F, stack);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -282,11 +282,11 @@ class CHeapObj {
|
|||||||
// Calling new or delete will result in fatal error.
|
// Calling new or delete will result in fatal error.
|
||||||
|
|
||||||
class StackObj {
|
class StackObj {
|
||||||
private:
|
public:
|
||||||
void* operator new(size_t size) throw();
|
void* operator new(size_t size) = delete;
|
||||||
void* operator new [](size_t size) throw();
|
void* operator new [](size_t size) = delete;
|
||||||
void operator delete(void* p);
|
void operator delete(void* p) = delete;
|
||||||
void operator delete [](void* p);
|
void operator delete [](void* p) = delete;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Base class for objects stored in Metaspace.
|
// Base class for objects stored in Metaspace.
|
||||||
@ -432,7 +432,7 @@ extern void resource_free_bytes( Thread* thread, char *old, size_t size );
|
|||||||
// Base class for objects allocated in the resource area.
|
// Base class for objects allocated in the resource area.
|
||||||
class ResourceObj {
|
class ResourceObj {
|
||||||
public:
|
public:
|
||||||
void* operator new(size_t size) throw() {
|
void* operator new(size_t size) {
|
||||||
return resource_allocate_bytes(size);
|
return resource_allocate_bytes(size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -500,11 +500,11 @@ protected:
|
|||||||
void* operator new [](size_t size, const std::nothrow_t& nothrow_constant, MEMFLAGS flags) throw() = delete;
|
void* operator new [](size_t size, const std::nothrow_t& nothrow_constant, MEMFLAGS flags) throw() = delete;
|
||||||
|
|
||||||
// Arena allocations
|
// Arena allocations
|
||||||
void* operator new(size_t size, Arena *arena) throw();
|
void* operator new(size_t size, Arena *arena);
|
||||||
void* operator new [](size_t size, Arena *arena) throw() = delete;
|
void* operator new [](size_t size, Arena *arena) = delete;
|
||||||
|
|
||||||
// Resource allocations
|
// Resource allocations
|
||||||
void* operator new(size_t size) throw() {
|
void* operator new(size_t size) {
|
||||||
address res = (address)resource_allocate_bytes(size);
|
address res = (address)resource_allocate_bytes(size);
|
||||||
DEBUG_ONLY(set_allocation_type(res, RESOURCE_AREA);)
|
DEBUG_ONLY(set_allocation_type(res, RESOURCE_AREA);)
|
||||||
return res;
|
return res;
|
||||||
@ -515,8 +515,8 @@ protected:
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
void* operator new [](size_t size) throw() = delete;
|
void* operator new [](size_t size) = delete;
|
||||||
void* operator new [](size_t size, const std::nothrow_t& nothrow_constant) throw() = delete;
|
void* operator new [](size_t size, const std::nothrow_t& nothrow_constant) = delete;
|
||||||
void operator delete(void* p);
|
void operator delete(void* p);
|
||||||
void operator delete [](void* p) = delete;
|
void operator delete [](void* p) = delete;
|
||||||
|
|
||||||
|
@ -3651,7 +3651,7 @@ JvmtiEnv::IsMethodObsolete(Method* method, jboolean* is_obsolete_ptr) {
|
|||||||
// monitor_ptr - pre-checked for null
|
// monitor_ptr - pre-checked for null
|
||||||
jvmtiError
|
jvmtiError
|
||||||
JvmtiEnv::CreateRawMonitor(const char* name, jrawMonitorID* monitor_ptr) {
|
JvmtiEnv::CreateRawMonitor(const char* name, jrawMonitorID* monitor_ptr) {
|
||||||
JvmtiRawMonitor* rmonitor = new JvmtiRawMonitor(name);
|
JvmtiRawMonitor* rmonitor = new (std::nothrow) JvmtiRawMonitor(name);
|
||||||
NULL_CHECK(rmonitor, JVMTI_ERROR_OUT_OF_MEMORY);
|
NULL_CHECK(rmonitor, JVMTI_ERROR_OUT_OF_MEMORY);
|
||||||
|
|
||||||
*monitor_ptr = (jrawMonitorID)rmonitor;
|
*monitor_ptr = (jrawMonitorID)rmonitor;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1999, 2022, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1999, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -110,11 +110,6 @@ class JvmtiRawMonitor : public CHeapObj<mtSynchronizer> {
|
|||||||
M_INTERRUPTED // Thread.interrupt()
|
M_INTERRUPTED // Thread.interrupt()
|
||||||
};
|
};
|
||||||
|
|
||||||
// Non-aborting operator new
|
|
||||||
void* operator new(size_t size) throw() {
|
|
||||||
return CHeapObj::operator new(size, std::nothrow);
|
|
||||||
}
|
|
||||||
|
|
||||||
JvmtiRawMonitor(const char* name);
|
JvmtiRawMonitor(const char* name);
|
||||||
~JvmtiRawMonitor();
|
~JvmtiRawMonitor();
|
||||||
|
|
||||||
|
@ -58,15 +58,6 @@ THREAD_LOCAL Thread* Thread::_thr_current = nullptr;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// ======= Thread ========
|
// ======= Thread ========
|
||||||
void* Thread::allocate(size_t size, bool throw_excpt, MEMFLAGS flags) {
|
|
||||||
return throw_excpt ? AllocateHeap(size, flags, CURRENT_PC)
|
|
||||||
: AllocateHeap(size, flags, CURRENT_PC, AllocFailStrategy::RETURN_NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Thread::operator delete(void* p) {
|
|
||||||
FreeHeap(p);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Base class for all threads: VMThread, WatcherThread, ConcurrentMarkSweepThread,
|
// Base class for all threads: VMThread, WatcherThread, ConcurrentMarkSweepThread,
|
||||||
// JavaThread
|
// JavaThread
|
||||||
|
|
||||||
|
@ -200,14 +200,6 @@ class Thread: public ThreadShadow {
|
|||||||
// with the calling Thread?
|
// with the calling Thread?
|
||||||
static bool is_JavaThread_protected_by_TLH(const JavaThread* target);
|
static bool is_JavaThread_protected_by_TLH(const JavaThread* target);
|
||||||
|
|
||||||
void* operator new(size_t size) throw() { return allocate(size, true); }
|
|
||||||
void* operator new(size_t size, const std::nothrow_t& nothrow_constant) throw() {
|
|
||||||
return allocate(size, false); }
|
|
||||||
void operator delete(void* p);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
static void* allocate(size_t size, bool throw_excpt, MEMFLAGS flags = mtThread);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DEBUG_ONLY(bool _suspendible_thread;)
|
DEBUG_ONLY(bool _suspendible_thread;)
|
||||||
|
|
||||||
|
@ -809,13 +809,16 @@ public:
|
|||||||
this->clear_and_deallocate();
|
this->clear_and_deallocate();
|
||||||
}
|
}
|
||||||
|
|
||||||
void* operator new(size_t size) throw() {
|
void* operator new(size_t size) {
|
||||||
return AnyObj::operator new(size, F);
|
return AnyObj::operator new(size, F);
|
||||||
}
|
}
|
||||||
|
|
||||||
void* operator new(size_t size, const std::nothrow_t& nothrow_constant) throw() {
|
void* operator new(size_t size, const std::nothrow_t& nothrow_constant) throw() {
|
||||||
return AnyObj::operator new(size, nothrow_constant, F);
|
return AnyObj::operator new(size, nothrow_constant, F);
|
||||||
}
|
}
|
||||||
|
void operator delete(void *p) {
|
||||||
|
AnyObj::operator delete(p);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Custom STL-style iterator to iterate over GrowableArrays
|
// Custom STL-style iterator to iterate over GrowableArrays
|
||||||
|
Loading…
x
Reference in New Issue
Block a user