Do not construct std::function with Allocator argument
Bug: http://b/116702964 This breaks when built with C++17, where these constructors are removed. Looks like libc++ ignored the allocator arguments anyway - so this should be NFC even with C++17. Test: memunreachable_test on the host and Sailfish with C++14, C++17 Change-Id: I638326a900781f64d0562b5ec38e990659967039
This commit is contained in:
parent
c105f4b63a
commit
02ab36e220
3 changed files with 4 additions and 6 deletions
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue