blob: ddadcfa87a0adcb461d513ad02e2f9df50f0f477 [file] [log] [blame]
Andrew MacPherson17220c12014-03-05 10:12:43 +00001//===-- JITLoader.cpp -------------------------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
Andrew MacPherson17220c12014-03-05 10:12:43 +000010#include "lldb/Target/JITLoader.h"
Kate Stoneb9c1b512016-09-06 20:57:50 +000011#include "lldb/Core/PluginManager.h"
Andrew MacPherson17220c12014-03-05 10:12:43 +000012#include "lldb/Target/JITLoaderList.h"
13#include "lldb/Target/Process.h"
Kate Stoneb9c1b512016-09-06 20:57:50 +000014#include "lldb/lldb-private.h"
Andrew MacPherson17220c12014-03-05 10:12:43 +000015
16using namespace lldb;
17using namespace lldb_private;
18
Kate Stoneb9c1b512016-09-06 20:57:50 +000019void JITLoader::LoadPlugins(Process *process, JITLoaderList &list) {
20 JITLoaderCreateInstance create_callback = nullptr;
21 for (uint32_t idx = 0;
22 (create_callback =
23 PluginManager::GetJITLoaderCreateCallbackAtIndex(idx)) != nullptr;
24 ++idx) {
25 JITLoaderSP instance_sp(create_callback(process, false));
26 if (instance_sp)
27 list.Append(std::move(instance_sp));
28 }
Andrew MacPherson17220c12014-03-05 10:12:43 +000029}
30
Kate Stoneb9c1b512016-09-06 20:57:50 +000031JITLoader::JITLoader(Process *process) : m_process(process) {}
Andrew MacPherson17220c12014-03-05 10:12:43 +000032
Eugene Zelenko9394d7722016-02-18 00:10:17 +000033JITLoader::~JITLoader() = default;