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)11 NativeStackSampler::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()23 NativeStackSampler::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