xo-gc: cosmetic: rename xo::mm::role -> xo::mm::Role
This commit is contained in:
parent
b794f225b2
commit
d7c2ae295a
11 changed files with 40 additions and 39 deletions
|
|
@ -60,17 +60,17 @@ public:
|
|||
/** destroy instance @p d; calls c++ dtor only for actual runtime type; does not recover memory **/
|
||||
virtual void _drop(Opaque d) const noexcept = 0;
|
||||
/** memory in use for this collector **/
|
||||
virtual size_type allocated(Copaque data, Generation g, role r) const noexcept = 0;
|
||||
virtual size_type allocated(Copaque data, Generation g, Role r) const noexcept = 0;
|
||||
/** memory committed for this collector **/
|
||||
virtual size_type committed(Copaque data, Generation g, role r) const noexcept = 0;
|
||||
virtual size_type committed(Copaque data, Generation g, Role r) const noexcept = 0;
|
||||
/** address space reserved for this collector **/
|
||||
virtual size_type reserved(Copaque data, Generation g, role r) const noexcept = 0;
|
||||
virtual size_type reserved(Copaque data, Generation g, Role r) const noexcept = 0;
|
||||
/** Location of object in collector. -1 if not in collector memory.
|
||||
Other negative values represent collector error states (good luck!).
|
||||
Exact meaning of non-negative values up to collector implementation **/
|
||||
virtual std::int32_t locate_address(Copaque data, const void * addr) const noexcept = 0;
|
||||
/** true if gc responsible for data at @p addr, and data belongs to role @p r **/
|
||||
virtual bool contains(Copaque data, role r, const void * addr) const noexcept = 0;
|
||||
/** true if gc responsible for data at @p addr, and data belongs to Role @p r **/
|
||||
virtual bool contains(Copaque data, Role r, const void * addr) const noexcept = 0;
|
||||
/** true iff gc-aware object of type @p tseq is installed in this collector **/
|
||||
virtual bool is_type_installed(Copaque data, typeseq tseq) const noexcept = 0;
|
||||
/** Report gc statistics, at discretion of collector implementation.
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ public:
|
|||
virtual AllocInfo alloc_info(Copaque data, void * addr) const = 0;
|
||||
/** generation to which pointer @p addr belongs, given role @p r;
|
||||
sentinel if @p addr is not owned by collector **/
|
||||
virtual Generation generation_of(Copaque data, role r, const void * addr) const noexcept = 0;
|
||||
virtual Generation generation_of(Copaque data, Role r, const void * addr) const noexcept = 0;
|
||||
|
||||
// nonconst methods
|
||||
/** allocate copy of source object at address @p src.
|
||||
|
|
|
|||
|
|
@ -59,11 +59,11 @@ namespace mm {
|
|||
[[noreturn]] void _drop(Opaque) const noexcept override { _fatal(); }
|
||||
|
||||
// const methods
|
||||
[[noreturn]] size_type allocated(Copaque, Generation, role) const noexcept override { _fatal(); }
|
||||
[[noreturn]] size_type committed(Copaque, Generation, role) const noexcept override { _fatal(); }
|
||||
[[noreturn]] size_type reserved(Copaque, Generation, role) const noexcept override { _fatal(); }
|
||||
[[noreturn]] size_type allocated(Copaque, Generation, Role) const noexcept override { _fatal(); }
|
||||
[[noreturn]] size_type committed(Copaque, Generation, Role) const noexcept override { _fatal(); }
|
||||
[[noreturn]] size_type reserved(Copaque, Generation, Role) const noexcept override { _fatal(); }
|
||||
[[noreturn]] std::int32_t locate_address(Copaque, const void *) const noexcept override { _fatal(); }
|
||||
[[noreturn]] bool contains(Copaque, role, const void *) const noexcept override { _fatal(); }
|
||||
[[noreturn]] bool contains(Copaque, Role, const void *) const noexcept override { _fatal(); }
|
||||
[[noreturn]] bool is_type_installed(Copaque, typeseq) const noexcept override { _fatal(); }
|
||||
[[noreturn]] bool report_statistics(Copaque, obj<AAllocator>, obj<AAllocator>, obj<AGCObject> *) const noexcept override { _fatal(); }
|
||||
[[noreturn]] bool report_object_types(Copaque, obj<AAllocator>, obj<AAllocator>, obj<AGCObject> *) const noexcept override { _fatal(); }
|
||||
|
|
|
|||
|
|
@ -46,19 +46,19 @@ namespace mm {
|
|||
void _drop(Opaque d) const noexcept override { _dcast(d).~DRepr(); }
|
||||
|
||||
// const methods
|
||||
size_type allocated(Copaque data, Generation g, role r) const noexcept override {
|
||||
size_type allocated(Copaque data, Generation g, Role r) const noexcept override {
|
||||
return I::allocated(_dcast(data), g, r);
|
||||
}
|
||||
size_type committed(Copaque data, Generation g, role r) const noexcept override {
|
||||
size_type committed(Copaque data, Generation g, Role r) const noexcept override {
|
||||
return I::committed(_dcast(data), g, r);
|
||||
}
|
||||
size_type reserved(Copaque data, Generation g, role r) const noexcept override {
|
||||
size_type reserved(Copaque data, Generation g, Role r) const noexcept override {
|
||||
return I::reserved(_dcast(data), g, r);
|
||||
}
|
||||
std::int32_t locate_address(Copaque data, const void * addr) const noexcept override {
|
||||
return I::locate_address(_dcast(data), addr);
|
||||
}
|
||||
bool contains(Copaque data, role r, const void * addr) const noexcept override {
|
||||
bool contains(Copaque data, Role r, const void * addr) const noexcept override {
|
||||
return I::contains(_dcast(data), r, addr);
|
||||
}
|
||||
bool is_type_installed(Copaque data, typeseq tseq) const noexcept override {
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ namespace mm {
|
|||
|
||||
// const methods
|
||||
[[noreturn]] AllocInfo alloc_info(Copaque, void *) const override { _fatal(); }
|
||||
[[noreturn]] Generation generation_of(Copaque, role, const void *) const noexcept override { _fatal(); }
|
||||
[[noreturn]] Generation generation_of(Copaque, Role, const void *) const noexcept override { _fatal(); }
|
||||
|
||||
// nonconst methods
|
||||
[[noreturn]] void * alloc_copy(Opaque, std::byte *) const override;
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ namespace mm {
|
|||
AllocInfo alloc_info(Copaque data, void * addr) const override {
|
||||
return I::alloc_info(_dcast(data), addr);
|
||||
}
|
||||
Generation generation_of(Copaque data, role r, const void * addr) const noexcept override {
|
||||
Generation generation_of(Copaque data, Role r, const void * addr) const noexcept override {
|
||||
return I::generation_of(_dcast(data), r, addr);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -95,19 +95,19 @@ public:
|
|||
void _drop() const noexcept { O::iface()->_drop(O::data()); }
|
||||
|
||||
// const methods
|
||||
size_type allocated(Generation g, role r) const noexcept {
|
||||
size_type allocated(Generation g, Role r) const noexcept {
|
||||
return O::iface()->allocated(O::data(), g, r);
|
||||
}
|
||||
size_type committed(Generation g, role r) const noexcept {
|
||||
size_type committed(Generation g, Role r) const noexcept {
|
||||
return O::iface()->committed(O::data(), g, r);
|
||||
}
|
||||
size_type reserved(Generation g, role r) const noexcept {
|
||||
size_type reserved(Generation g, Role r) const noexcept {
|
||||
return O::iface()->reserved(O::data(), g, r);
|
||||
}
|
||||
std::int32_t locate_address(const void * addr) const noexcept {
|
||||
return O::iface()->locate_address(O::data(), addr);
|
||||
}
|
||||
bool contains(role r, const void * addr) const noexcept {
|
||||
bool contains(Role r, const void * addr) const noexcept {
|
||||
return O::iface()->contains(O::data(), r, addr);
|
||||
}
|
||||
bool is_type_installed(typeseq tseq) const noexcept {
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ public:
|
|||
AllocInfo alloc_info(void * addr) const {
|
||||
return O::iface()->alloc_info(O::data(), addr);
|
||||
}
|
||||
Generation generation_of(role r, const void * addr) const noexcept {
|
||||
Generation generation_of(Role r, const void * addr) const noexcept {
|
||||
return O::iface()->generation_of(O::data(), r, addr);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,18 +12,19 @@ namespace xo {
|
|||
namespace mm {
|
||||
static constexpr uint32_t c_n_role = 2;
|
||||
|
||||
struct role {
|
||||
class Role {
|
||||
public:
|
||||
using value_type = std::uint32_t;
|
||||
|
||||
explicit constexpr role(value_type x) : role_{x} {}
|
||||
explicit constexpr Role(value_type x) : role_{x} {}
|
||||
|
||||
static constexpr role to_space() { return role{0}; }
|
||||
static constexpr role from_space() { return role{1}; }
|
||||
static constexpr Role to_space() { return Role{0}; }
|
||||
static constexpr Role from_space() { return Role{1}; }
|
||||
|
||||
static constexpr std::array<role, c_n_role> all() { return {{to_space(), from_space()}}; }
|
||||
static constexpr std::array<Role, c_n_role> all() { return {{to_space(), from_space()}}; }
|
||||
|
||||
static constexpr role begin() { return role{0}; }
|
||||
static constexpr role end() { return role{2}; }
|
||||
static constexpr Role begin() { return Role{0}; }
|
||||
static constexpr Role end() { return Role{2}; }
|
||||
|
||||
operator value_type() const { return role_; }
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue