8234779: Provide idiom for declaring classes noncopyable

Add NONCOPYABLE macro and uses.

Reviewed-by: dholmes, pliden, coleenp
This commit is contained in:
Kim Barrett 2019-12-03 19:09:30 -05:00
parent 3e0a524547
commit 577e87e5b2
37 changed files with 101 additions and 131 deletions

View file

@ -28,6 +28,7 @@
#include "memory/padded.hpp"
#include "utilities/align.hpp"
#include "utilities/debug.hpp"
#include "utilities/globalDefinitions.hpp"
#include "utilities/lockFreeStack.hpp"
#include "utilities/sizes.hpp"
@ -44,9 +45,7 @@ class PtrQueueSet;
class PtrQueue {
friend class VMStructs;
// Noncopyable - not defined.
PtrQueue(const PtrQueue&);
PtrQueue& operator=(const PtrQueue&);
NONCOPYABLE(PtrQueue);
// The ptr queue set to which this queue belongs.
PtrQueueSet* const _qset;
@ -205,6 +204,8 @@ class BufferNode {
BufferNode() : _index(0), _next(NULL) { }
~BufferNode() { }
NONCOPYABLE(BufferNode);
static size_t buffer_offset() {
return offset_of(BufferNode, _buffer);
}
@ -273,6 +274,8 @@ class BufferNode::Allocator {
void delete_list(BufferNode* list);
bool try_transfer_pending();
NONCOPYABLE(Allocator);
public:
Allocator(const char* name, size_t buffer_size);
~Allocator();
@ -295,9 +298,7 @@ public:
class PtrQueueSet {
BufferNode::Allocator* _allocator;
// Noncopyable - not defined.
PtrQueueSet(const PtrQueueSet&);
PtrQueueSet& operator=(const PtrQueueSet&);
NONCOPYABLE(PtrQueueSet);
protected:
bool _all_active;