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