mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-08 21:10:35 +00:00
[ManagedStatic] Make object_creator/object_deleter visible again.
They're now exposed as template args, which creates complications when ManagedStatics are used across .so boundaries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304166 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
bcabbd57dc
commit
613a9c723b
@ -14,25 +14,20 @@
|
||||
#ifndef LLVM_SUPPORT_MANAGEDSTATIC_H
|
||||
#define LLVM_SUPPORT_MANAGEDSTATIC_H
|
||||
|
||||
#include "llvm/Support/Compiler.h"
|
||||
#include <atomic>
|
||||
#include <cstddef>
|
||||
|
||||
namespace llvm {
|
||||
|
||||
/// object_creator - Helper method for ManagedStatic.
|
||||
template<class C>
|
||||
LLVM_LIBRARY_VISIBILITY void* object_creator() {
|
||||
return new C();
|
||||
}
|
||||
template <class C> void *object_creator() { return new C(); }
|
||||
|
||||
/// object_deleter - Helper method for ManagedStatic.
|
||||
///
|
||||
template <typename T> struct LLVM_LIBRARY_VISIBILITY object_deleter {
|
||||
template <typename T> struct object_deleter {
|
||||
static void call(void *Ptr) { delete (T *)Ptr; }
|
||||
};
|
||||
template <typename T, size_t N>
|
||||
struct LLVM_LIBRARY_VISIBILITY object_deleter<T[N]> {
|
||||
template <typename T, size_t N> struct object_deleter<T[N]> {
|
||||
static void call(void *Ptr) { delete[](T *)Ptr; }
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user