示例#1
0
void LFPointer::DerivedPut( ExeMaker& eMaker ) const
/**************************************************/
{
    eMaker.DumpToExe(&_pointer,sizeof(ct_pointer));
    if ( _trailingType != NO_TYPING_INFO ) {
        eMaker.DumpToExe( (unsigned_16) _trailingType);
    }
}
示例#2
0
uint SymbolSubsection::DumpPageAlign( ExeMaker&         eMaker,
                                      const uint        padCount,
                                      const unsigned_8  padVal )
/**************************************************************/
{
    eMaker.DumpToExe((unsigned_16) (padCount+WORD));
    eMaker.DumpToExe((unsigned_16) S_ALIGN);
    for ( uint i = 0; i < padCount; i++ ) {
        eMaker.DumpToExe(padVal);
    }
    return ( LONG_WORD + padCount );
}
示例#3
0
void LFMethodList::DerivedPut( ExeMaker& eMaker ) const
/*****************************************************/
{
    WCPtrConstSListIter<my_ct_mlist> iter(*_mList);
    my_ct_mlist*   currentPtr;
    while ( ++iter ) {
        currentPtr = iter.current();
        eMaker.DumpToExe( &(currentPtr->attr),sizeof(cv_fldattr));
        eMaker.DumpToExe( currentPtr -> type );
        if ( currentPtr -> vtab != NO_VTAB_OFFSET ) {
            eMaker.DumpToExe(currentPtr -> vtab);
        }
    }
}
示例#4
0
void SstGlobalTypes::Put( ExeMaker& eMaker ) const
{
    unsigned_32 offset = 0;
    uint        i;

    eMaker.DumpToExe( (unsigned_32) 0 );
    eMaker.DumpToExe( (unsigned_32) _globalTypingInfo.Entries() );
    for ( i = ToTypeIndex(0); i < ToTypeIndex(_globalTypingInfo.Entries()); i++ ) {
        eMaker.DumpToExe( offset );
        offset += _globalTypingInfo[i] -> Length();
    }
    for ( i = ToTypeIndex(0); i < ToTypeIndex(_globalTypingInfo.Entries()); i++ ) {
        _globalTypingInfo[i] -> Put( eMaker );
    }
}
示例#5
0
void SstAlignSym::Put( ExeMaker& eMaker ) const
/*********************************************/
{
    WCPtrConstSListIter<SymbolStruct> iter(_symbolInfo);
    eMaker.DumpToExe((unsigned_32) CV4_HEADER );
    while ( ++iter ) {
        iter.current() -> Put( eMaker );
    }
}
示例#6
0
void NameHashTable::Put( ExeMaker& eMaker ) const
/***********************************************/
{
    uint    i;

    eMaker.DumpToExe( (unsigned_16) _cHash);
    eMaker.DumpToExe((unsigned_16) 0);
    unsigned_32  chain_offset = 0;
    for ( i = 0; i < _cHash; i++ ) {
        eMaker.DumpToExe(chain_offset);
        chain_offset += _cTab[i].entries() * (2*LONG_WORD);
    }
    for ( i = 0; i < _cHash; i++ ) {
        eMaker.DumpToExe((unsigned_32) _cTab[i].entries());
    }
    chain_table* currentPtr;
    WCPtrConstSListIter<chain_table> iter;
    for ( i = 0; i < _cHash; i++ ) {
        iter.reset(_cTab[i]);
        while ( ++iter ) {
            currentPtr = iter.current();
            eMaker.DumpToExe(currentPtr -> _offset);
            eMaker.DumpToExe(currentPtr -> _checkSum);
        }
    }
}
示例#7
0
void AddrHashTable::Put( ExeMaker& eMaker ) const
/***********************************************/
{
    unsigned_32  chain_offset = 0;
    uint         i;
    uint         j;

    eMaker.DumpToExe( (unsigned_16) _cSeg);
    eMaker.DumpToExe((unsigned_16) 0);
    for ( i = 0; i < _cSeg; i++ ) {
        eMaker.DumpToExe(chain_offset);
        chain_offset += _oTab[i].entries() * (2*LONG_WORD);
    }
    for ( i = 0; i < _cSeg; i++ ) {
        eMaker.DumpToExe((unsigned_32) _oTab[i].entries());
    }
    offset_table** tempTable;
    WCPtrConstSListIter<offset_table> iter;
    for ( i = 0; i < _cSeg; i++ ) {
        /*
        cerr << "AddrHashTable::Put(), _cSeg ";
        cerr << i;
        cerr << "\n";
        cerr.flush();
        */
        tempTable = new offset_table* [_oTab[i].entries()];
        iter.reset(_oTab[i]);
        for ( j = 0; ++iter; j++ ) {
            tempTable[j] = iter.current();
        }
        qsort(tempTable,_oTab[i].entries(),sizeof(offset_table*),AddrHashTable::Compare);
        /*
        cerr << "AddrHashTable has ";
        cerr << _oTab[i].entries();
        cerr << " entries\n";
        cerr.flush();
        */

        for ( j = 0; j < _oTab[i].entries(); j++ ) {
            eMaker.DumpToExe(tempTable[j] -> _fileOffset);
            eMaker.DumpToExe(tempTable[j] -> _memOffset);
        }
        delete [] tempTable;
    }
    /*
    cerr << "AddHashTable done.\n";
    cerr.flush();
    */
}
示例#8
0
void LFOneMethod::DerivedPut( ExeMaker& eMaker ) const
/****************************************************/
{
    eMaker.DumpToExe(&_oneMethod,sizeof(ct_onemethod));
}
示例#9
0
void LFVFuncTab::DerivedPut( ExeMaker& eMaker ) const
/***************************************************/
{
    eMaker.DumpToExe(&_vFuncTab,sizeof(ct_vfunctab));
}
示例#10
0
void LFMember::DerivedPut( ExeMaker& eMaker ) const
/*************************************************/
{
    eMaker.DumpToExe(&_member,sizeof(ct_member));
}
示例#11
0
void LFFriendFcn::DerivedPut( ExeMaker& eMaker ) const
/****************************************************/
{
    eMaker.DumpToExe(&_friendFcn,sizeof(ct_friendfcn));
}
示例#12
0
void LFVBClass::DerivedPut( ExeMaker& eMaker ) const
/**************************************************/
{
    eMaker.DumpToExe(&_vbClass,sizeof(ct_vbclass));
}
示例#13
0
void LFVtShape::DerivedPut( ExeMaker& eMaker ) const
/**************************************************/
{
    eMaker.DumpToExe(&_vtShape,sizeof(ct_vtshape));
}
示例#14
0
void LFMFunction::DerivedPut( ExeMaker& eMaker ) const
/****************************************************/
{
    eMaker.DumpToExe(&_mFunction,sizeof(ct_mfunction));
}
示例#15
0
void LFProcedure::DerivedPut( ExeMaker& eMaker ) const
/****************************************************/
{
    eMaker.DumpToExe(&_procedure,sizeof(ct_procedure));
}
示例#16
0
void LFDerived::DerivedPut( ExeMaker& eMaker ) const
/**************************************************/
{
    eMaker.DumpToExe(&_derived,sizeof(ct_derived));
    eMaker.DumpToExe(_indices,sizeof(type_index)*_derived.count);
}
示例#17
0
void LFBitField::DerivedPut( ExeMaker& eMaker ) const
/***************************************************/
{
    eMaker.DumpToExe(&_bitField,sizeof(ct_bitfield));
}
示例#18
0
void LFCobol0::DerivedPut( ExeMaker& eMaker ) const
/*************************************************/
{
    eMaker.DumpToExe(&_cobol0,sizeof(ct_cobol0));
}
示例#19
0
void LFDimConlu::DerivedPut( ExeMaker& eMaker ) const
/***************************************************/
{
    eMaker.DumpToExe(&_dimConlu,sizeof(ct_dimconlu));
}
示例#20
0
void LFBArray::DerivedPut( ExeMaker& eMaker ) const
/*************************************************/
{
    eMaker.DumpToExe(&_bArray,sizeof(ct_barray));
}
示例#21
0
void LFEnumerate::DerivedPut( ExeMaker& eMaker ) const
/****************************************************/
{
    eMaker.DumpToExe(&_enumerate,sizeof(ct_enumerate));
}
示例#22
0
void LFLabel::DerivedPut( ExeMaker& eMaker ) const
/************************************************/
{
    eMaker.DumpToExe(&_label,sizeof(ct_label));
}
示例#23
0
void LFIndex::DerivedPut( ExeMaker& eMaker ) const
/************************************************/
{
    eMaker.DumpToExe(&_index,sizeof(ct_index));
}
示例#24
0
void LFDimArray::DerivedPut( ExeMaker& eMaker ) const
/***************************************************/
{
    eMaker.DumpToExe(&_dimArray,sizeof(ct_dimarray));
}
示例#25
0
void LFNestedType::DerivedPut( ExeMaker& eMaker ) const
/*****************************************************/
{
    eMaker.DumpToExe(&_nestedType,sizeof(ct_nestedtype));
}
示例#26
0
void LFVftPath::DerivedPut( ExeMaker& eMaker ) const
/**************************************************/
{
    eMaker.DumpToExe(&_vftPath,sizeof(ct_vftpath));
    eMaker.DumpToExe(_bases, sizeof(type_index)*_vftPath.count);
}
示例#27
0
void LFFriendCls::DerivedPut( ExeMaker& eMaker ) const
/****************************************************/
{
    eMaker.DumpToExe(&_friendCls,sizeof(ct_friendcls));
}
示例#28
0
void LFArgList::DerivedPut( ExeMaker& eMaker ) const
/**************************************************/
{
    eMaker.DumpToExe(&_argList,sizeof(ct_arglist));
    eMaker.DumpToExe(_indices, sizeof(type_index)*_argList.argcount);
}
示例#29
0
void LFVFuncOff::DerivedPut( ExeMaker& eMaker ) const
/***************************************************/
{
    eMaker.DumpToExe(&_vFuncOff,sizeof(ct_vfuncoff));
}
示例#30
0
void LFDefArg::DerivedPut( ExeMaker& eMaker ) const
/*************************************************/
{
    eMaker.DumpToExe(&_defArg,sizeof(ct_defarg));
}