1*635a8641SAndroid Build Coastguard Worker // Copyright 2015 The Chromium Authors. All rights reserved. 2*635a8641SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*635a8641SAndroid Build Coastguard Worker // found in the LICENSE file. 4*635a8641SAndroid Build Coastguard Worker 5*635a8641SAndroid Build Coastguard Worker #include "base/profiler/native_stack_sampler.h" 6*635a8641SAndroid Build Coastguard Worker 7*635a8641SAndroid Build Coastguard Worker #include "base/memory/ptr_util.h" 8*635a8641SAndroid Build Coastguard Worker 9*635a8641SAndroid Build Coastguard Worker namespace base { 10*635a8641SAndroid Build Coastguard Worker StackBuffer(size_t buffer_size)11*635a8641SAndroid Build Coastguard WorkerNativeStackSampler::StackBuffer::StackBuffer(size_t buffer_size) 12*635a8641SAndroid Build Coastguard Worker : buffer_(new uintptr_t[(buffer_size + sizeof(uintptr_t) - 1) / 13*635a8641SAndroid Build Coastguard Worker sizeof(uintptr_t)]), 14*635a8641SAndroid Build Coastguard Worker size_(buffer_size) {} 15*635a8641SAndroid Build Coastguard Worker 16*635a8641SAndroid Build Coastguard Worker NativeStackSampler::StackBuffer::~StackBuffer() = default; 17*635a8641SAndroid Build Coastguard Worker 18*635a8641SAndroid Build Coastguard Worker NativeStackSampler::NativeStackSampler() = default; 19*635a8641SAndroid Build Coastguard Worker 20*635a8641SAndroid Build Coastguard Worker NativeStackSampler::~NativeStackSampler() = default; 21*635a8641SAndroid Build Coastguard Worker 22*635a8641SAndroid Build Coastguard Worker std::unique_ptr<NativeStackSampler::StackBuffer> CreateStackBuffer()23*635a8641SAndroid Build Coastguard WorkerNativeStackSampler::CreateStackBuffer() { 24*635a8641SAndroid Build Coastguard Worker size_t size = GetStackBufferSize(); 25*635a8641SAndroid Build Coastguard Worker if (size == 0) 26*635a8641SAndroid Build Coastguard Worker return nullptr; 27*635a8641SAndroid Build Coastguard Worker return std::make_unique<StackBuffer>(size); 28*635a8641SAndroid Build Coastguard Worker } 29*635a8641SAndroid Build Coastguard Worker 30*635a8641SAndroid Build Coastguard Worker NativeStackSamplerTestDelegate::~NativeStackSamplerTestDelegate() = default; 31*635a8641SAndroid Build Coastguard Worker 32*635a8641SAndroid Build Coastguard Worker NativeStackSamplerTestDelegate::NativeStackSamplerTestDelegate() = default; 33*635a8641SAndroid Build Coastguard Worker 34*635a8641SAndroid Build Coastguard Worker } // namespace base 35