Ignore:
Timestamp:
Aug 2, 2007, 11:23:36 PM (17 years ago)
Author:
dai_9181
Message:

Linkerの骨格を作成した

Location:
trunk/abdev/BasicCompiler_Common/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler_Common/src/Linker.cpp

    r257 r258  
    2020
    2121// DLL関数スケジュール
    22 void Linker::ResolveDllProcSchedules( long codeSectionBaseOffset, long importSectionBaseOffset )
     22void Linker::ResolveDllProcSchedules( long codeSectionBaseOffset, long importSectionBaseOffset, long lookupSize, long hintSize )
    2323{
    2424    BOOST_FOREACH( const Schedule &schedule, nativeCode.GetSchedules() )
     
    3333            );
    3434#else
    35             // TODO: 未完成
    36             SetError();
     35            nativeCode.Overwrite(
     36                schedule.GetOffset(),
     37                static_cast<long>( imageBase + importSectionBaseOffset + lookupSize + hintSize
     38                    + schedule.GetDllProc().GetLookupAddress() )
     39            );
    3740#endif
    3841        }
     
    106109    ObjectModule &masterObjectModule = *objectModules[0];
    107110
    108     nativeCode.Put( masterObjectModule.globalNativeCode );
     111    nativeCode.Put( masterObjectModule.globalNativeCode, false );
    109112
    110113    masterObjectModule.meta.GetUserProcs().Iterator_Reset();
     
    117120            pUserProc->SetBeginOpAddress( nativeCode.GetSize() );
    118121
    119             nativeCode.Put( pUserProc->GetNativeCode() );
     122            nativeCode.Put( pUserProc->GetNativeCode(), false );
    120123
    121124            pUserProc->SetEndOpAddress( nativeCode.GetSize() );
  • trunk/abdev/BasicCompiler_Common/src/NativeCode.cpp

    r257 r258  
    1818}
    1919
    20 void NativeCode::Put( const NativeCode &nativeCode )
     20void NativeCode::Put( const NativeCode &nativeCode, bool isOpBuffer )
    2121{
    2222    long baseOffset = size;
    2323
    24     Put( nativeCode.codeBuffer, nativeCode.size );
     24    Put( nativeCode.codeBuffer, nativeCode.size, isOpBuffer );
    2525
    2626    BOOST_FOREACH( const Schedule &schedule, nativeCode.schedules )
     
    2929            Schedule(
    3030                schedule.GetType(),
    31                 baseOffset + schedule.GetOffset()
     31                baseOffset + schedule.GetOffset(),
     32                schedule.GetLongPtrValue()
    3233            )
    3334        );
Note: See TracChangeset for help on using the changeset viewer.