//===- InputFactory.cpp ---------------------------------------------------===//
//
// The MCLinker Project
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include "mcld/MC/InputFactory.h"
#include "mcld/MC/AttributeFactory.h"
using namespace mcld;
//===----------------------------------------------------------------------===//
// InputFactory
InputFactory::InputFactory(size_t pNum, AttributeFactory& pAttrFactory)
: GCFactory<Input,0>(pNum), m_AttrFactory(pAttrFactory) {
}
InputFactory::~InputFactory()
{
}
Input* InputFactory::produce(llvm::StringRef pName,
const sys::fs::Path& pPath,
unsigned int pType,
off_t pFileOffset)
{
mcld::Input* result = Alloc::allocate();
new (result) mcld::Input(pName, pPath, m_AttrFactory.last(), pType, pFileOffset);
return result;
}