Ignore:
Timestamp:
May 5, 2008, 1:47:06 PM (17 years ago)
Author:
dai_9181
Message:

CClass::GetDelegateメソッドを廃止し、代わりにMeta::ToDelegateメソッドを実装。

Location:
trunk/ab5.0/abdev/BasicCompiler_Common/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/Class.cpp

    r561 r562  
    294294
    295295    return result;
    296 }
    297 
    298 const ::Delegate &CClass::GetDelegate() const
    299 {
    300     const ::Delegate *dg = compiler.GetObjectModule().meta.GetDelegates().GetHashArrayElement( GetName().c_str() );
    301     while( dg )
    302     {
    303         if( dg->IsEqualSymbol( GetNamespaceScopes(), GetName() ) ){
    304             //名前空間とクラス名が一致した
    305             return *dg;
    306         }
    307         dg = dg->GetChainNext();
    308     }
    309 
    310     Jenga::Throw( "CClass::GetDelegateメソッドに失敗" );
    311     static ::Delegate dummy;
    312     return dummy;
    313296}
    314297
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/Meta.cpp

    r448 r562  
    163163    meta.GetDelegates().PullOutAll();
    164164}
     165
     166const ::Delegate &Meta::ToDelegate( const CClass &_class )
     167{
     168    const ::Delegate *dg = this->GetDelegates().GetHashArrayElement( _class.GetName().c_str() );
     169    while( dg )
     170    {
     171        if( dg->IsEqualSymbol( _class.GetNamespaceScopes(), _class.GetName() ) ){
     172            //名前空間とクラス名が一致した
     173            return *dg;
     174        }
     175        dg = dg->GetChainNext();
     176    }
     177
     178    throw;
     179}
Note: See TracChangeset for help on using the changeset viewer.