llvm-project/lldb/source/Target/UnwindAssembly.cpp
Pavel Labath 0610a25a85 [lldb] Delete copy operations on PluginInterface class
This is a polymorphic class, copying it is a bad idea.

This was not a problem because most classes inheriting from it were
deleting their copy operations themselves. However, this enables us to
delete those explicit deletions, and ensure noone forgets to add them in
the future.
2020-10-09 10:37:09 +02:00

32 lines
1.0 KiB
C++

//===-- UnwindAssembly.cpp ------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#include "lldb/Target/UnwindAssembly.h"
#include "lldb/Core/PluginInterface.h"
#include "lldb/Core/PluginManager.h"
#include "lldb/lldb-private.h"
using namespace lldb;
using namespace lldb_private;
UnwindAssemblySP UnwindAssembly::FindPlugin(const ArchSpec &arch) {
UnwindAssemblyCreateInstance create_callback;
for (uint32_t idx = 0;
(create_callback = PluginManager::GetUnwindAssemblyCreateCallbackAtIndex(
idx)) != nullptr;
++idx) {
UnwindAssemblySP assembly_profiler_up(create_callback(arch));
if (assembly_profiler_up)
return assembly_profiler_up;
}
return nullptr;
}
UnwindAssembly::UnwindAssembly(const ArchSpec &arch) : m_arch(arch) {}