Changeset 550 in dev for trunk/ab5.0/abdev


Ignore:
Timestamp:
May 4, 2008, 10:56:44 PM (17 years ago)
Author:
dai_9181
Message:

SpecifyAddressOf, SpecifyCatchAddressを廃止。

Location:
trunk/ab5.0/abdev/BasicCompiler_Common
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/BasicCompiler_Common/include/NativeCode.h

    r529 r550  
    7373    {
    7474    }
    75     Schedule( const ::UserProc *pUserProc, long offset )
    76         : type( Schedule::UserProc )
     75    Schedule( Schedule::Type type, const ::UserProc *pUserProc, long offset )
     76        : type( type )
    7777        , offset( offset )
    7878        , pUserProc( pUserProc )
     
    114114    const ::UserProc &GetUserProc() const;
    115115    const ::CClass &GetClass() const;
    116 
    117     void SpecifyAddressOf();
    118     void SpecifyCatchAddress();
    119116};
    120117typedef std::vector<Schedule> Schedules;
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/Exception.cpp

    r537 r550  
    227227                pUserProc = UserProc::pGlobalProc;
    228228            }
    229             compiler.GetObjectModule().dataTable.schedules.push_back( Schedule( pUserProc, dataTableOffset + pos ) );
    230             compiler.GetObjectModule().dataTable.schedules.back().SpecifyCatchAddress();
     229            compiler.GetObjectModule().dataTable.schedules.push_back(
     230                Schedule( Schedule::CatchAddress, pUserProc, dataTableOffset + pos )
     231            );
    231232            pos += sizeof(LONG_PTR);
    232233        }
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/NativeCode.cpp

    r549 r550  
    1919    _ASSERT( type == Schedule::ComVtbl || type == Schedule::Vtbl || type == Schedule::TypeInfo );
    2020    return *pClass;
    21 }
    22 
    23 void Schedule::SpecifyAddressOf()
    24 {
    25     _ASSERT( type == Schedule::UserProc );
    26     type = Schedule::AddressOf;
    27 }
    28 void Schedule::SpecifyCatchAddress()
    29 {
    30     _ASSERT( type == Schedule::UserProc );
    31     type = Schedule::CatchAddress;
    3221}
    3322
     
    9281    pUserProc->Using();
    9382
    94     Schedule schedule( pUserProc, GetSize() );
    95     if( isCall == false )
    96     {
    97         schedule.SpecifyAddressOf();
    98     }
    99     schedules.push_back( schedule );
     83    Schedule::Type type = isCall ? Schedule::UserProc : Schedule::AddressOf;
     84
     85    schedules.push_back( Schedule( type, pUserProc, GetSize() ) );
    10086
    10187    Put( (long)0 );
     
    10692    pUserProc->Using();
    10793
    108     Schedule schedule( pUserProc, GetSize() );
    109     schedule.SpecifyCatchAddress();
    110     schedules.push_back( schedule );
     94    schedules.push_back( Schedule( Schedule::CatchAddress, pUserProc, GetSize() ) );
    11195
    11296    Put( codePos );
Note: See TracChangeset for help on using the changeset viewer.