Input.cpp revision 0dea6bc96bb52346737966839ac68644f7939f58
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#include <mcld/MC/Attribute.h>
11#include <mcld/LD/LDContext.h>
12
13using namespace mcld;
14
15//===----------------------------------------------------------------------===//
16// mcld::Input
17//===----------------------------------------------------------------------===//
18Input::Input(llvm::StringRef pName)
19  : m_Type(Unknown),
20    m_Name(pName.data()),
21    m_Path(),
22    m_pAttr(NULL),
23    m_bNeeded(false),
24    m_bNoExport(false),
25    m_fileOffset(0),
26    m_pMemArea(NULL),
27    m_pContext(NULL) {
28}
29
30Input::Input(llvm::StringRef pName, const AttributeProxy& pProxy)
31  : m_Type(Unknown),
32    m_Name(pName.data()),
33    m_Path(),
34    m_pAttr(const_cast<Attribute*>(pProxy.attr())),
35    m_bNeeded(false),
36    m_bNoExport(false),
37    m_fileOffset(0),
38    m_pMemArea(NULL),
39    m_pContext(NULL) {
40}
41
42Input::Input(llvm::StringRef pName,
43        const sys::fs::Path& pPath,
44        unsigned int pType,
45        off_t pFileOffset)
46  : m_Type(pType),
47    m_Name(pName.data()),
48    m_Path(pPath),
49    m_pAttr(NULL),
50    m_bNeeded(false),
51    m_bNoExport(false),
52    m_fileOffset(pFileOffset),
53    m_pMemArea(NULL),
54    m_pContext(NULL) {
55}
56
57Input::Input(llvm::StringRef pName,
58        const sys::fs::Path& pPath,
59        const AttributeProxy& pProxy,
60        unsigned int pType,
61        off_t pFileOffset)
62  : m_Type(pType),
63    m_Name(pName.data()),
64    m_Path(pPath),
65    m_pAttr(const_cast<Attribute*>(pProxy.attr())),
66    m_bNeeded(false),
67    m_bNoExport(false),
68    m_fileOffset(pFileOffset),
69    m_pMemArea(NULL),
70    m_pContext(NULL) {
71}
72
73Input::~Input()
74{
75  // Attribute is deleted by AttributeFactory
76  // MemoryArea is deleted by MemoryAreaFactory
77}
78
79