Ignore:
Timestamp:
Nov 10, 2007, 4:32:21 AM (17 years ago)
Author:
dai_9181
Message:

Catchのオーバーロードを実装中

File:
1 edited

Legend:

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

    r359 r361  
    5454        }
    5555    }
     56
     57    BOOST_FOREACH( const Schedule &schedule, dataTable.schedules )
     58    {
     59        if( schedule.GetType() == Schedule::CatchAddress )
     60        {
     61            if( nativeCode.GetLong( schedule.GetOffset() ) != 0 )
     62            {
     63                // 置き換える値が0の場合を除く
     64#ifdef _WIN64
     65                dataTable.OverwriteInt64(
     66                    schedule.GetOffset(),
     67                    dataTable.GetInt64( schedule.GetOffset() ) + schedule.GetUserProc().GetBeginOpAddress() + imageBase + codeSectionBaseOffset
     68                );
     69#else
     70                dataTable.Overwrite(
     71                    schedule.GetOffset(),
     72                    dataTable.GetLong( schedule.GetOffset() ) + schedule.GetUserProc().GetBeginOpAddress() + imageBase + codeSectionBaseOffset
     73                );
     74#endif
     75            }
     76        }
     77    }
    5678}
    5779
Note: See TracChangeset for help on using the changeset viewer.