xo-arena xo-facet xo-alloc2: build restored
This commit is contained in:
parent
f9deeb298a
commit
5d83363a69
10 changed files with 11 additions and 133 deletions
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
include(CMakeFindDependencyMacro)
|
||||
#find_dependency(indentlog)
|
||||
find_depnedency(xo_arena)
|
||||
find_dependency(xo_facet)
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake")
|
||||
check_required_components("@PROJECT_NAME@")
|
||||
|
|
|
|||
|
|
@ -1,79 +0,0 @@
|
|||
/** @file AllocError.hpp
|
||||
*
|
||||
* @author Roland Conybeare, Dec 2025
|
||||
**/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <cstddef>
|
||||
|
||||
namespace xo {
|
||||
namespace mm {
|
||||
enum class error : int32_t {
|
||||
/** sentinel **/
|
||||
invalid = -1,
|
||||
/** not an error **/
|
||||
ok,
|
||||
/** reserved size exhauged **/
|
||||
reserve_exhausted,
|
||||
/** unable to commit (i.e. mprotect failure) **/
|
||||
commit_failed,
|
||||
/** allocation size too big (See @ref ArenaConfig::header_size_mask_) **/
|
||||
header_size_mask,
|
||||
/** sub_alloc not preceded by super alloc (or another sub_alloc) **/
|
||||
orphan_sub_alloc,
|
||||
/** attempt to call alloc_info for allocator with alloc header feature disabled
|
||||
* (e.g. @ref see ArenaConfig::store_header_flag_)
|
||||
**/
|
||||
alloc_info_disabled,
|
||||
/** attempt to call alloc_info for address not owned by allocator **/
|
||||
alloc_info_address,
|
||||
/** for example: alloc iteration not supported in arenas with
|
||||
* AllocConfig.store_header_flag_ = false
|
||||
**/
|
||||
alloc_iterator_not_supported,
|
||||
/** attempt to deref an iterator that does not refer to an alloc **/
|
||||
alloc_iterator_deref,
|
||||
/** attempt to advance an iterator that does not refer to an alloc **/
|
||||
alloc_iterator_next,
|
||||
};
|
||||
|
||||
struct AllocError {
|
||||
using size_type = std::size_t;
|
||||
using value_type = std::byte*;
|
||||
|
||||
AllocError() = default;
|
||||
explicit AllocError(error err,
|
||||
uint32_t seq) : error_{err},
|
||||
error_seq_{seq} {}
|
||||
AllocError(error err,
|
||||
uint32_t seq,
|
||||
size_type req_z,
|
||||
size_type com_z,
|
||||
size_type rsv_z) : error_{err},
|
||||
error_seq_{seq},
|
||||
request_z_{req_z},
|
||||
committed_z_{com_z},
|
||||
reserved_z_{rsv_z} {}
|
||||
|
||||
static const char * error_description(error x);
|
||||
|
||||
/** error code **/
|
||||
error error_ = error::ok;
|
||||
|
||||
/** sequence# of this error.
|
||||
* Each error event within an allocator gets next sequence number
|
||||
**/
|
||||
uint32_t error_seq_ = 0;
|
||||
/** reqeust size assoc'd with errror **/
|
||||
size_type request_z_ = 0;
|
||||
/** committed allocator memory at time of error **/
|
||||
size_type committed_z_ = 0;
|
||||
/** reserved allocator memory at time of error **/
|
||||
size_type reserved_z_ = 0;
|
||||
};
|
||||
} /*namespace mm*/
|
||||
} /*namespace xo*/
|
||||
|
||||
/* end AllocError.hpp */
|
||||
|
|
@ -23,7 +23,7 @@ namespace xo {
|
|||
**/
|
||||
struct AAllocIterator {
|
||||
using obj_AAllocIterator = xo::facet::obj<AAllocIterator>;
|
||||
using typeseq = xo::facet::typeseq;
|
||||
using typeseq = xo::reflect::typeseq;
|
||||
|
||||
/** @defgroup mm-allociterator-methods AllocIterator methods **/
|
||||
///@{
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "AllocError.hpp"
|
||||
#include <xo/arena/AllocError.hpp>
|
||||
#include "AllocInfo.hpp"
|
||||
//#include "AllocIterator.hpp"
|
||||
#include "AllocRange.hpp"
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ namespace xo {
|
|||
* @brief AllocIterator implementation for empty variant instance
|
||||
**/
|
||||
struct IAllocIterator_Any : public AAllocIterator {
|
||||
using typeseq = xo::facet::typeseq;
|
||||
using typeseq = xo::reflect::typeseq;
|
||||
|
||||
const AAllocIterator * iface() const { return std::launder(this); }
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ namespace xo {
|
|||
typename IAllocIterator_DRepr>
|
||||
struct IAllocIterator_Xfer : public AAllocIterator {
|
||||
using Impl = IAllocIterator_DRepr;
|
||||
using typeseq = xo::facet::typeseq;
|
||||
using typeseq = xo::reflect::typeseq;
|
||||
|
||||
static const DRepr & _dcast(Copaque d) { return *(const DRepr *)d; }
|
||||
static DRepr & _dcast(Opaque d) { return *(DRepr *)d; }
|
||||
|
|
@ -48,9 +48,9 @@ namespace xo {
|
|||
};
|
||||
|
||||
template <typename DRepr, typename IAllocIterator_DRepr>
|
||||
xo::facet::typeseq
|
||||
xo::reflect::typeseq
|
||||
IAllocIterator_Xfer<DRepr, IAllocIterator_DRepr>::s_typeseq
|
||||
= facet::typeseq::id<DRepr>();
|
||||
= reflect::typeseq::id<DRepr>();
|
||||
|
||||
template <typename DRepr, typename IAllocIterator_DRepr>
|
||||
bool
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ namespace xo {
|
|||
public:
|
||||
using ObjectType = Object;
|
||||
using DataPtr = Object::DataPtr;
|
||||
using typeseq = xo::facet::typeseq;
|
||||
using typeseq = xo::reflect::typeseq;
|
||||
|
||||
RAllocIterator() {}
|
||||
RAllocIterator(Object::DataPtr data) : Object{std::move(data)} {}
|
||||
|
|
|
|||
|
|
@ -1,45 +0,0 @@
|
|||
/** @file AllocError.cpp
|
||||
*
|
||||
* @author Roland Conybeare, Dec 2025
|
||||
**/
|
||||
|
||||
#include "AllocError.hpp"
|
||||
|
||||
namespace xo {
|
||||
namespace mm {
|
||||
|
||||
const char *
|
||||
AllocError::error_description(error x)
|
||||
{
|
||||
switch (x) {
|
||||
case error::invalid:
|
||||
break;
|
||||
case error::ok:
|
||||
return "ok";
|
||||
case error::reserve_exhausted:
|
||||
return "reserve-exhausted";
|
||||
case error::commit_failed:
|
||||
return "commit-failed";
|
||||
case error::header_size_mask:
|
||||
return "header-size-mask";
|
||||
case error::orphan_sub_alloc:
|
||||
return "orphan-sub-alloc";
|
||||
case error::alloc_info_disabled:
|
||||
return "alloc-info-disabled";
|
||||
case error::alloc_info_address:
|
||||
return "alloc-info-address";
|
||||
case error::alloc_iterator_not_supported:
|
||||
return "alloc-iterator-not-supported";
|
||||
case error::alloc_iterator_deref:
|
||||
return "alloc-iterator-deref";
|
||||
case error::alloc_iterator_next:
|
||||
return "alloc-iterator-next";
|
||||
}
|
||||
|
||||
return "?error";
|
||||
}
|
||||
|
||||
} /*namespace mm*/
|
||||
} /*namespace xo*/
|
||||
|
||||
/* end AllocError.cpp */
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
set(SELF_LIB xo_alloc2)
|
||||
set(SELF_SRCS
|
||||
|
||||
AllocError.cpp
|
||||
# AllocError.cpp
|
||||
AllocInfo.cpp
|
||||
cmpresult.cpp
|
||||
|
||||
|
|
@ -21,5 +21,6 @@ set(SELF_SRCS
|
|||
|
||||
xo_add_shared_library4(${SELF_LIB} ${PROJECT_NAME}Targets ${PROJECT_VERSION} 1 ${SELF_SRCS})
|
||||
# note: deps here must also appear in cmake/xo_alloc2Config.cmake.in
|
||||
xo_dependency(${SELF_LIB} xo_arena)
|
||||
xo_dependency(${SELF_LIB} xo_facet)
|
||||
xo_dependency(${SELF_LIB} indentlog)
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@
|
|||
namespace xo {
|
||||
namespace mm {
|
||||
using xo::facet::DVariantPlaceholder;
|
||||
using xo::facet::typeseq;
|
||||
using xo::facet::valid_facet_implementation;
|
||||
using xo::reflect::typeseq;
|
||||
|
||||
void
|
||||
IAllocIterator_Any::_fatal() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue