Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9c5c396d authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Do not construct std::function with Allocator argument"

parents e3745bc5 02ab36e2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -52,7 +52,7 @@ class HeapWalker {
        allocation_bytes_(0),
        roots_(allocator),
        root_vals_(allocator),
        segv_handler_(allocator),
        segv_handler_(),
        walking_ptr_(0) {
    valid_allocations_range_.end = 0;
    valid_allocations_range_.begin = ~valid_allocations_range_.end;
+1 −1
Original line number Diff line number Diff line
@@ -57,7 +57,7 @@ void LeakFolding::ComputeDAG() {
}

void LeakFolding::AccumulateLeaks(SCCInfo* dominator) {
  std::function<void(SCCInfo*)> walk(std::allocator_arg, allocator_, [&](SCCInfo* scc) {
  std::function<void(SCCInfo*)> walk([&](SCCInfo* scc) {
    if (scc->accumulator != dominator) {
      scc->accumulator = dominator;
      dominator->cuumulative_size += scc->size;
+2 −4
Original line number Diff line number Diff line
@@ -32,15 +32,14 @@ class ScopedSignalHandler {
 public:
  using Fn = std::function<void(ScopedSignalHandler&, int, siginfo_t*, void*)>;

  explicit ScopedSignalHandler(Allocator<Fn> allocator) : allocator_(allocator), signal_(-1) {}
  explicit ScopedSignalHandler() : signal_(-1) {}
  ~ScopedSignalHandler() { reset(); }

  template <class F>
  void install(int signal, F&& f) {
    if (signal_ != -1) MEM_LOG_ALWAYS_FATAL("ScopedSignalHandler already installed");

    handler_ = SignalFn(std::allocator_arg, allocator_,
                        [=](int signal, siginfo_t* si, void* uctx) { f(*this, signal, si, uctx); });
    handler_ = SignalFn([=](int signal, siginfo_t* si, void* uctx) { f(*this, signal, si, uctx); });

    struct sigaction act {};
    act.sa_sigaction = [](int signal, siginfo_t* si, void* uctx) { handler_(signal, si, uctx); };
@@ -68,7 +67,6 @@ class ScopedSignalHandler {
 private:
  using SignalFn = std::function<void(int, siginfo_t*, void*)>;
  DISALLOW_COPY_AND_ASSIGN(ScopedSignalHandler);
  Allocator<Fn> allocator_;
  int signal_;
  struct sigaction old_act_;
  // TODO(ccross): to support multiple ScopedSignalHandlers handler_ would need