xref: /aosp_15_r20/external/libchrome/base/profiler/native_stack_sampler.cc (revision 635a864187cb8b6c713ff48b7e790a6b21769273)
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 Worker NativeStackSampler::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 Worker NativeStackSampler::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