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