Verified Commit 7e9d1bd0 authored by Alberto Miranda's avatar Alberto Miranda ♨️
Browse files

adhoc_storage: Fix bug with shadowed id

Closes #88
parent 4291f4e9
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -348,12 +348,6 @@ struct adhoc_storage : public storage {
    operator=(adhoc_storage&&) noexcept;
    ~adhoc_storage() override;

    const std::uint64_t&
    id() const;

    std::uint64_t&
    id();

    std::shared_ptr<storage::ctx>
    context() const final;

+1 −22
Original line number Diff line number Diff line
@@ -1347,7 +1347,7 @@ adhoc_storage::ctx::should_flush() const {
class adhoc_storage::impl {

public:
    explicit impl(adhoc_storage::ctx ctx) : m_id(), m_ctx(std::move(ctx)) {}
    explicit impl(adhoc_storage::ctx ctx) : m_ctx(std::move(ctx)) {}
    impl(const impl& rhs) = default;
    impl(impl&& rhs) = default;
    impl&
@@ -1356,16 +1356,6 @@ public:
    operator=(impl&&) noexcept = default;
    ~impl() = default;

    const std::uint64_t&
    id() const {
        return m_id;
    }

    std::uint64_t&
    id() {
        return m_id;
    }

    adhoc_storage::ctx
    context() const {
        return m_ctx;
@@ -1377,7 +1367,6 @@ public:
    }

private:
    std::uint64_t m_id;
    adhoc_storage::ctx m_ctx;
};

@@ -1417,16 +1406,6 @@ adhoc_storage::operator=(const adhoc_storage& other) noexcept {
adhoc_storage&
adhoc_storage::operator=(adhoc_storage&&) noexcept = default;

const std::uint64_t&
adhoc_storage::id() const {
    return m_pimpl->id();
}

std::uint64_t&
adhoc_storage::id() {
    return m_pimpl->id();
}

std::shared_ptr<storage::ctx>
adhoc_storage::context() const {
    return std::make_shared<adhoc_storage::ctx>(m_pimpl->context());
+1 −2
Original line number Diff line number Diff line
@@ -54,8 +54,7 @@ struct adhoc_storage_manager : scord::utils::singleton<adhoc_storage_manager> {
           it == m_adhoc_storages.end()) {
            const auto& [it_adhoc, inserted] = m_adhoc_storages.emplace(
                    id, std::make_shared<admire::internal::adhoc_storage_info>(
                                admire::adhoc_storage{type, name, current_id++,
                                                      ctx}));
                                admire::adhoc_storage{type, name, id, ctx}));

            if(!inserted) {
                LOGGER_ERROR("{}: Emplace failed", __FUNCTION__);