Ignore:
Timestamp:
Aug 5, 2007, 3:47:49 AM (17 years ago)
Author:
dai_9181
Message:
 
File:
1 edited

Legend:

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

    r258 r263  
    2222    long baseOffset = size;
    2323
     24    // コードバッファを追加
    2425    Put( nativeCode.codeBuffer, nativeCode.size, isOpBuffer );
    2526
     27    // スケジュールを追加
    2628    BOOST_FOREACH( const Schedule &schedule, nativeCode.schedules )
    2729    {
     
    3133                baseOffset + schedule.GetOffset(),
    3234                schedule.GetLongPtrValue()
     35            )
     36        );
     37    }
     38
     39    // ソースコード行番号とネイティブコード位置の対応情報を追加
     40    BOOST_FOREACH( const SourceLine &sourceLine, nativeCode.sourceLines )
     41    {
     42        this->sourceLines.push_back(
     43            SourceLine(
     44                sourceLine.GetLineNum(),
     45                baseOffset + sourceLine.GetNativeCodePos(),
     46                sourceLine.GetSourceCodePos(),
     47                sourceLine.GetCodeType()
    3348            )
    3449        );
     
    85100    ObpPlus( sizeof(long) );
    86101}
     102
     103void NativeCode::NextSourceLine()
     104{
     105    if( sourceLines.size() )
     106    {
     107        if( sourceLines.back().GetNativeCodePos() == size )
     108        {
     109            sourceLines.back().SetSourceCodePos( cp );
     110            return;
     111        }
     112    }
     113
     114    extern BOOL bDebugSupportProc;
     115    extern BOOL bSystemProc;
     116    DWORD sourceLineType = 0;
     117    if( bDebugSupportProc )
     118    {
     119        sourceLineType |= CODETYPE_DEBUGPROC;
     120    }
     121    if( bSystemProc )
     122    {
     123        sourceLineType |= CODETYPE_SYSTEMPROC;
     124    }
     125    sourceLines.push_back( SourceLine( (long)sourceLines.size(), size, cp, sourceLineType ) );
     126}
Note: See TracChangeset for help on using the changeset viewer.