Home | History | Annotate | Download | only in LD
      1 //===- SymbolTableFactory.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/LD/SymbolTableFactory.h"
     10 
     11 using namespace mcld;
     12 
     13 //==========================
     14 // SymbolTableFactory
     15 
     16 SymbolTableFactory::SymbolTableFactory(size_t pNumOfSymbolTables,
     17                                        StrSymPool& pStrSymPool)
     18   : m_StrSymPool(pStrSymPool),
     19     m_InputFactory(pNumOfSymbolTables),
     20     m_OutputFactory(pNumOfSymbolTables)
     21 {
     22 }
     23 
     24 SymbolTableFactory::~SymbolTableFactory()
     25 {
     26 }
     27 
     28 SymbolTableIF *SymbolTableFactory::
     29 createInputTable(StringTable &pEntireStringTable,
     30                  StringTable &pDynamicStringTable,
     31                  size_t pReserve)
     32 {
     33   InputSymbolTable *inputSymTab = m_InputFactory.allocate();
     34   new (inputSymTab) InputSymbolTable(m_StrSymPool,
     35                                      pReserve,
     36                                      pEntireStringTable,
     37                                      pDynamicStringTable);
     38   return inputSymTab;
     39 }
     40 
     41 SymbolTableIF *SymbolTableFactory::
     42 createOutputTable(StringTable &pEntireStringTable,
     43                   StringTable &pDynamicStringTable,
     44                   size_t pReserve)
     45 {
     46   OutputSymbolTable *outputSymTab = m_OutputFactory.allocate();
     47   new (outputSymTab) OutputSymbolTable(m_StrSymPool,
     48                                        pReserve,
     49                                        pEntireStringTable,
     50                                        pDynamicStringTable);
     51   return outputSymTab;
     52 }
     53