Skip to content

Commit

Permalink
Address cppcoreguidelines-no-malloc
Browse files Browse the repository at this point in the history
  • Loading branch information
yperbasis committed Jan 17, 2024
1 parent 6d5cbfe commit d8a8fca
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 9 deletions.
1 change: 0 additions & 1 deletion .clang-tidy
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ Checks: >
-cppcoreguidelines-avoid-non-const-global-variables,
-cppcoreguidelines-avoid-reference-coroutine-parameters,
-cppcoreguidelines-macro-usage,
-cppcoreguidelines-no-malloc,
-cppcoreguidelines-non-private-member-variables-in-classes,
-cppcoreguidelines-owning-memory,
-cppcoreguidelines-prefer-member-initializer,
Expand Down
3 changes: 2 additions & 1 deletion silkworm/node/stagedsync/stages/stage_senders.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -278,7 +278,8 @@ Stage::Result Senders::parallel_recover(db::RWTxn& txn) {

secp256k1_context* context = secp256k1_context_create(SILKWORM_SECP256K1_CONTEXT_FLAGS);
if (!context) throw std::runtime_error("Could not create elliptic curve context");
[[maybe_unused]] auto _ = gsl::finally([&]() { if (context) std::free(context); });
// NOLINTNEXTLINE(cppcoreguidelines-no-malloc)
[[maybe_unused]] auto _ = gsl::finally([&]() { std::free(context); });

BlockNum start_block_num{previous_progress + 1u};

Expand Down
9 changes: 2 additions & 7 deletions silkworm/rpc/ethdb/bitmap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,21 +32,16 @@ using roaring_bitmap_t = roaring::api::roaring_bitmap_t;
using Roaring = roaring::Roaring;

static Roaring fast_or(size_t n, const std::vector<std::unique_ptr<Roaring>>& inputs) {
const auto** x = static_cast<const roaring_bitmap_t**>(malloc(n * sizeof(roaring_bitmap_t*)));
if (x == nullptr) {
throw std::runtime_error("failed memory alloc in fast_or");
}
std::vector<const roaring_bitmap_t*> x(n);
for (size_t k = 0; k < n; ++k) {
x[k] = &inputs[k]->roaring;
}

roaring_bitmap_t* c_ans = roaring_bitmap_or_many(n, x);
roaring_bitmap_t* c_ans = roaring_bitmap_or_many(n, x.data());
if (c_ans == nullptr) {
free(x);
throw std::runtime_error("failed memory alloc in fast_or");
}
Roaring ans(c_ans);
free(x);
return ans;
}

Expand Down

0 comments on commit d8a8fca

Please sign in to comment.