//===- FileToken.cpp ------------------------------------------------------===// // // The MCLinker Project // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #include #include #include using namespace mcld; typedef GCFactory FileTokenFactory; static llvm::ManagedStatic g_FileTokenFactory; //===----------------------------------------------------------------------===// // FileToken //===----------------------------------------------------------------------===// FileToken::FileToken() { } FileToken::FileToken(const std::string& pName, bool pAsNeeded) : InputToken(InputToken::File, pName, pAsNeeded) { } FileToken::~FileToken() { } FileToken* FileToken::create(const std::string& pName, bool pAsNeeded) { FileToken* result = g_FileTokenFactory->allocate(); new (result) FileToken(pName, pAsNeeded); return result; } void FileToken::destroy(FileToken*& pFileToken) { g_FileTokenFactory->destroy(pFileToken); g_FileTokenFactory->deallocate(pFileToken); pFileToken = NULL; } void FileToken::clear() { g_FileTokenFactory->clear(); }