You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.3 KiB
50 lines
1.3 KiB
//===- NameSpec.cpp -------------------------------------------------------===//
|
|
//
|
|
// The MCLinker Project
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
#include "mcld/Script/NameSpec.h"
|
|
|
|
#include "mcld/Support/GCFactory.h"
|
|
|
|
#include <llvm/Support/ManagedStatic.h>
|
|
|
|
namespace mcld {
|
|
|
|
typedef GCFactory<NameSpec, MCLD_SYMBOLS_PER_INPUT> NameSpecFactory;
|
|
static llvm::ManagedStatic<NameSpecFactory> g_NameSpecFactory;
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
// NameSpec
|
|
//===----------------------------------------------------------------------===//
|
|
NameSpec::NameSpec() {
|
|
}
|
|
|
|
NameSpec::NameSpec(const std::string& pName, bool pAsNeeded)
|
|
: InputToken(InputToken::NameSpec, pName, pAsNeeded) {
|
|
}
|
|
|
|
NameSpec::~NameSpec() {
|
|
}
|
|
|
|
NameSpec* NameSpec::create(const std::string& pName, bool pAsNeeded) {
|
|
NameSpec* result = g_NameSpecFactory->allocate();
|
|
new (result) NameSpec(pName, pAsNeeded);
|
|
return result;
|
|
}
|
|
|
|
void NameSpec::destroy(NameSpec*& pNameSpec) {
|
|
g_NameSpecFactory->destroy(pNameSpec);
|
|
g_NameSpecFactory->deallocate(pNameSpec);
|
|
pNameSpec = NULL;
|
|
}
|
|
|
|
void NameSpec::clear() {
|
|
g_NameSpecFactory->clear();
|
|
}
|
|
|
|
} // namespace mcld
|