Ignore:
Timestamp:
Jun 12, 2008, 11:30:50 PM (16 years ago)
Author:
dai_9181
Message:

静的リンクリンカの依存関係解決モジュールを製作中

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/ab_common/src/Lexical/NativeCode.cpp

    r637 r639  
    1717    _ASSERT( type == Schedule::ComVtbl || type == Schedule::Vtbl || type == Schedule::TypeInfo );
    1818    return *pClass;
     19}
     20
     21bool Schedule::Resolve( const ObjectModule &resolver )
     22{
     23    switch( type )
     24    {
     25    case UserProc:
     26    case AddressOf:
     27    case CatchAddress:
     28        if( pUserProc->IsNeedResolve() )
     29        {
     30            pUserProc = resolver.meta.GetUserProcs().FindLike( pUserProc );
     31        }
     32        break;
     33    case DllProc:
     34        if( pDllProc->IsNeedResolve() )
     35        {
     36            pDllProc = resolver.meta.GetDllProcs().FindLike( pDllProc );
     37        }
     38        break;
     39    case ComVtbl:
     40    case Vtbl:
     41    case TypeInfo:
     42        if( pClass->IsNeedResolve() )
     43        {
     44            pClass = resolver.meta.GetClasses().FindLike( pClass );
     45        }
     46        break;
     47    default:
     48        break;
     49    }
     50
     51    return true;
    1952}
    2053
     
    158191}
    159192
    160 void NativeCode::Resolve()
     193void NativeCode::Resolve( const ObjectModule &resolver )
    161194{
    162     // TODO: Resolve
     195    BOOST_FOREACH( Schedule &schedule, schedules )
     196    {
     197        schedule.Resolve( resolver );
     198    }
    163199}
Note: See TracChangeset for help on using the changeset viewer.