1 //===- Input.cpp ----------------------------------------------------------===// 2 // 3 // The MCLinker Project 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 #include "mcld/MC/Input.h" 10 11 #include "mcld/MC/Attribute.h" 12 #include "mcld/LD/LDContext.h" 13 14 namespace mcld { 15 16 //===----------------------------------------------------------------------===// 17 // mcld::Input 18 //===----------------------------------------------------------------------===// 19 Input::Input(llvm::StringRef pName) 20 : m_Type(Unknown), 21 m_Name(pName.data()), 22 m_Path(), 23 m_pAttr(NULL), 24 m_bNeeded(false), 25 m_bNoExport(false), 26 m_fileOffset(0), 27 m_pMemArea(NULL), 28 m_pContext(NULL) { 29 } 30 31 Input::Input(llvm::StringRef pName, const AttributeProxy& pProxy) 32 : m_Type(Unknown), 33 m_Name(pName.data()), 34 m_Path(), 35 m_pAttr(const_cast<Attribute*>(pProxy.attr())), 36 m_bNeeded(false), 37 m_bNoExport(false), 38 m_fileOffset(0), 39 m_pMemArea(NULL), 40 m_pContext(NULL) { 41 } 42 43 Input::Input(llvm::StringRef pName, 44 const sys::fs::Path& pPath, 45 unsigned int pType, 46 off_t pFileOffset) 47 : m_Type(pType), 48 m_Name(pName.data()), 49 m_Path(pPath), 50 m_pAttr(NULL), 51 m_bNeeded(false), 52 m_bNoExport(false), 53 m_fileOffset(pFileOffset), 54 m_pMemArea(NULL), 55 m_pContext(NULL) { 56 } 57 58 Input::Input(llvm::StringRef pName, 59 const sys::fs::Path& pPath, 60 const AttributeProxy& pProxy, 61 unsigned int pType, 62 off_t pFileOffset) 63 : m_Type(pType), 64 m_Name(pName.data()), 65 m_Path(pPath), 66 m_pAttr(const_cast<Attribute*>(pProxy.attr())), 67 m_bNeeded(false), 68 m_bNoExport(false), 69 m_fileOffset(pFileOffset), 70 m_pMemArea(NULL), 71 m_pContext(NULL) { 72 } 73 74 Input::~Input() { 75 // Attribute is deleted by AttributeFactory 76 // MemoryArea is deleted by MemoryAreaFactory 77 } 78 79 } // namespace mcld 80