From df923ff2fb2b4ba52086c0a9566db095739cebd8 Mon Sep 17 00:00:00 2001 From: Kim Barrett Date: Fri, 24 Jul 2020 04:43:08 -0400 Subject: [PATCH] 8249944: Move and improve the AllStatic class Move AllStatic to it's own standalone file, and use C++11 deleted functions Reviewed-by: dholmes, stuefe --- make/hotspot/lib/CompileJvm.gmk | 3 +- src/hotspot/share/memory/allStatic.hpp | 37 +++++++++++++++++++++++++ src/hotspot/share/memory/allocation.hpp | 8 +----- 3 files changed, 40 insertions(+), 8 deletions(-) create mode 100644 src/hotspot/share/memory/allStatic.hpp diff --git a/make/hotspot/lib/CompileJvm.gmk b/make/hotspot/lib/CompileJvm.gmk index 8aee876ca77..fbcd7c21b96 100644 --- a/make/hotspot/lib/CompileJvm.gmk +++ b/make/hotspot/lib/CompileJvm.gmk @@ -95,7 +95,8 @@ DISABLED_WARNINGS_clang := tautological-compare \ DISABLED_WARNINGS_xlc := tautological-compare shift-negative-value -DISABLED_WARNINGS_microsoft := 4100 4127 4201 4244 4291 4351 4511 4512 4514 4996 +DISABLED_WARNINGS_microsoft := 4100 4127 4201 4244 4291 4351 \ + 4511 4512 4514 4624 4996 ################################################################################ # Platform specific setup diff --git a/src/hotspot/share/memory/allStatic.hpp b/src/hotspot/share/memory/allStatic.hpp new file mode 100644 index 00000000000..79191de0dd1 --- /dev/null +++ b/src/hotspot/share/memory/allStatic.hpp @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2020, 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 + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#ifndef SHARE_MEMORY_ALLSTATIC_HPP +#define SHARE_MEMORY_ALLSTATIC_HPP + +// Base class for classes used as namespaces. HotSpot style prefers +// using classes for grouping. Deriving from this class indicates the +// derived class is intended to be a namespace, with no instances ever +// created. +struct AllStatic { + AllStatic() = delete; + ~AllStatic() = delete; +}; + +#endif // SHARE_MEMORY_ALLSTATIC_HPP diff --git a/src/hotspot/share/memory/allocation.hpp b/src/hotspot/share/memory/allocation.hpp index ab03532ac3a..abcbca4c001 100644 --- a/src/hotspot/share/memory/allocation.hpp +++ b/src/hotspot/share/memory/allocation.hpp @@ -25,6 +25,7 @@ #ifndef SHARE_MEMORY_ALLOCATION_HPP #define SHARE_MEMORY_ALLOCATION_HPP +#include "memory/allStatic.hpp" #include "utilities/globalDefinitions.hpp" #include "utilities/macros.hpp" @@ -349,13 +350,6 @@ class MetaspaceObj { class Arena; -class AllStatic { - public: - AllStatic() { ShouldNotCallThis(); } - ~AllStatic() { ShouldNotCallThis(); } -}; - - extern char* resource_allocate_bytes(size_t size, AllocFailType alloc_failmode = AllocFailStrategy::EXIT_OOM); extern char* resource_allocate_bytes(Thread* thread, size_t size,