void LFPointer::DerivedPut( ExeMaker& eMaker ) const /**************************************************/ { eMaker.DumpToExe(&_pointer,sizeof(ct_pointer)); if ( _trailingType != NO_TYPING_INFO ) { eMaker.DumpToExe( (unsigned_16) _trailingType); } }
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 ); }
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); } } }
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 ); } }
void SstAlignSym::Put( ExeMaker& eMaker ) const /*********************************************/ { WCPtrConstSListIter<SymbolStruct> iter(_symbolInfo); eMaker.DumpToExe((unsigned_32) CV4_HEADER ); while ( ++iter ) { iter.current() -> Put( eMaker ); } }
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); } } }
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(); */ }
void LFOneMethod::DerivedPut( ExeMaker& eMaker ) const /****************************************************/ { eMaker.DumpToExe(&_oneMethod,sizeof(ct_onemethod)); }
void LFVFuncTab::DerivedPut( ExeMaker& eMaker ) const /***************************************************/ { eMaker.DumpToExe(&_vFuncTab,sizeof(ct_vfunctab)); }
void LFMember::DerivedPut( ExeMaker& eMaker ) const /*************************************************/ { eMaker.DumpToExe(&_member,sizeof(ct_member)); }
void LFFriendFcn::DerivedPut( ExeMaker& eMaker ) const /****************************************************/ { eMaker.DumpToExe(&_friendFcn,sizeof(ct_friendfcn)); }
void LFVBClass::DerivedPut( ExeMaker& eMaker ) const /**************************************************/ { eMaker.DumpToExe(&_vbClass,sizeof(ct_vbclass)); }
void LFVtShape::DerivedPut( ExeMaker& eMaker ) const /**************************************************/ { eMaker.DumpToExe(&_vtShape,sizeof(ct_vtshape)); }
void LFMFunction::DerivedPut( ExeMaker& eMaker ) const /****************************************************/ { eMaker.DumpToExe(&_mFunction,sizeof(ct_mfunction)); }
void LFProcedure::DerivedPut( ExeMaker& eMaker ) const /****************************************************/ { eMaker.DumpToExe(&_procedure,sizeof(ct_procedure)); }
void LFDerived::DerivedPut( ExeMaker& eMaker ) const /**************************************************/ { eMaker.DumpToExe(&_derived,sizeof(ct_derived)); eMaker.DumpToExe(_indices,sizeof(type_index)*_derived.count); }
void LFBitField::DerivedPut( ExeMaker& eMaker ) const /***************************************************/ { eMaker.DumpToExe(&_bitField,sizeof(ct_bitfield)); }
void LFCobol0::DerivedPut( ExeMaker& eMaker ) const /*************************************************/ { eMaker.DumpToExe(&_cobol0,sizeof(ct_cobol0)); }
void LFDimConlu::DerivedPut( ExeMaker& eMaker ) const /***************************************************/ { eMaker.DumpToExe(&_dimConlu,sizeof(ct_dimconlu)); }
void LFBArray::DerivedPut( ExeMaker& eMaker ) const /*************************************************/ { eMaker.DumpToExe(&_bArray,sizeof(ct_barray)); }
void LFEnumerate::DerivedPut( ExeMaker& eMaker ) const /****************************************************/ { eMaker.DumpToExe(&_enumerate,sizeof(ct_enumerate)); }
void LFLabel::DerivedPut( ExeMaker& eMaker ) const /************************************************/ { eMaker.DumpToExe(&_label,sizeof(ct_label)); }
void LFIndex::DerivedPut( ExeMaker& eMaker ) const /************************************************/ { eMaker.DumpToExe(&_index,sizeof(ct_index)); }
void LFDimArray::DerivedPut( ExeMaker& eMaker ) const /***************************************************/ { eMaker.DumpToExe(&_dimArray,sizeof(ct_dimarray)); }
void LFNestedType::DerivedPut( ExeMaker& eMaker ) const /*****************************************************/ { eMaker.DumpToExe(&_nestedType,sizeof(ct_nestedtype)); }
void LFVftPath::DerivedPut( ExeMaker& eMaker ) const /**************************************************/ { eMaker.DumpToExe(&_vftPath,sizeof(ct_vftpath)); eMaker.DumpToExe(_bases, sizeof(type_index)*_vftPath.count); }
void LFFriendCls::DerivedPut( ExeMaker& eMaker ) const /****************************************************/ { eMaker.DumpToExe(&_friendCls,sizeof(ct_friendcls)); }
void LFArgList::DerivedPut( ExeMaker& eMaker ) const /**************************************************/ { eMaker.DumpToExe(&_argList,sizeof(ct_arglist)); eMaker.DumpToExe(_indices, sizeof(type_index)*_argList.argcount); }
void LFVFuncOff::DerivedPut( ExeMaker& eMaker ) const /***************************************************/ { eMaker.DumpToExe(&_vFuncOff,sizeof(ct_vfuncoff)); }
void LFDefArg::DerivedPut( ExeMaker& eMaker ) const /*************************************************/ { eMaker.DumpToExe(&_defArg,sizeof(ct_defarg)); }