8064947: Clean up BarrierSet ctor/dtor

Make abstract base call contructors protected and require a "kind" argument.

Reviewed-by: jmasa, jwilhelm
This commit is contained in:
Joseph Provino 2015-01-27 13:50:31 -05:00
parent 71a6555ee3
commit 3bd08574dc
7 changed files with 32 additions and 31 deletions

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 2015, 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
@ -40,8 +40,7 @@ public:
CardTableExtension,
G1SATBCT,
G1SATBCTLogging,
Other,
Uninit
Other
};
enum Flags {
@ -57,9 +56,11 @@ protected:
static const int _max_covered_regions = 2;
Name _kind;
BarrierSet(Name kind) : _kind(kind) { }
~BarrierSet() { }
public:
BarrierSet() { _kind = Uninit; }
// To get around prohibition on RTTI.
BarrierSet::Name kind() { return _kind; }
virtual bool is_a(BarrierSet::Name bsn) = 0;