122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===- Stub.cpp -----------------------------------------------------------===//
222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//
322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//                     The MCLinker Project
422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//
522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// This file is distributed under the University of Illinois Open Source
622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// License. See LICENSE.TXT for details.
722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//
822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===//
922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao
1022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao#include <mcld/Fragment/Stub.h>
1122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao
1222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaousing namespace mcld;
1322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao
1422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei LiaoStub::Stub()
1522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao : Fragment(Fragment::Stub),
1622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao   m_pSymInfo(NULL)
1722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao{
1822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao}
1922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao
2022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei LiaoStub::~Stub()
2122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao{
2222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao  for (fixup_iterator fixup= fixup_begin(); fixup != fixup_end(); ++fixup)
2322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao    delete(*fixup);
2422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao}
2522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao
2622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaovoid Stub::setSymInfo(ResolveInfo* pSymInfo)
2722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao{
2822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao  m_pSymInfo = pSymInfo;
2922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao}
3022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao
3122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaovoid Stub::addFixup(DWord pOffset, SWord pAddend, Type pType)
3222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao{
3322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao  assert(pOffset < size());
3422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao  m_FixupList.push_back(new Fixup(pOffset, pAddend, pType));
3522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao}
3622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao
3722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaovoid Stub::addFixup(const Fixup& pFixup)
3822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao{
3922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao  assert(pFixup.offset() < size());
4022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao  m_FixupList.push_back(new Fixup(pFixup));
4122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao}
4222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao
43