Ignore:
Timestamp:
Jun 14, 2008, 12:16:27 PM (16 years ago)
Author:
dai_9181
Message:

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

File:
1 edited

Legend:

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

    r639 r640  
    11#include "stdafx.h"
    22
    3 bool CMethod::Resolve( const ObjectModule &resolver )
     3bool CMethod::Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors )
    44{
    5     if( pUserProc )
     5    if( this->pUserProc )
    66    {
    7         if( pUserProc->IsNeedResolve() )
     7        if( this->pUserProc->IsNeedResolve() )
    88        {
    9             pUserProc = resolver.meta.GetUserProcs().FindLike( pUserProc );
     9            const UserProc *pTempUserProc = resolver.meta.GetUserProcs().FindLike( this->pUserProc );
     10            if( pTempUserProc )
     11            {
     12                this->pUserProc = pTempUserProc;
     13            }
     14            else
     15            {
     16                resolveErrors.Add( ResolveError( this->pUserProc->GetRelationalObjectModuleIndex(), this->pUserProc->GetFullName() ) );
     17            }
    1018        }
    1119    }
     
    4149}
    4250
    43 bool DynamicMethod::Resolve( const ObjectModule &resolver )
     51bool DynamicMethod::Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors )
    4452{
    45     CMethod::Resolve( resolver );
     53    CMethod::Resolve( resolver, resolveErrors );
    4654
    4755    if( this->pInheritsClass )
     
    4957        if( this->pInheritsClass->IsNeedResolve() )
    5058        {
    51             this->pInheritsClass = resolver.meta.GetClasses().FindLike( pInheritsClass );
     59            const CClass *pTempClass = resolver.meta.GetClasses().FindLike( pInheritsClass );
     60            if( pTempClass )
     61            {
     62                this->pInheritsClass = pTempClass;
     63            }
     64            else
     65            {
     66                resolveErrors.Add( ResolveError( this->pInheritsClass->GetRelationalObjectModuleIndex(), this->pInheritsClass->GetFullName() ) );
     67            }
    5268        }
    5369    }
     
    6278}
    6379
    64 bool StaticMethod::Resolve( const ObjectModule &resolver )
     80bool StaticMethod::Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors )
    6581{
    66     CMethod::Resolve( resolver );
     82    CMethod::Resolve( resolver, resolveErrors );
    6783    return true;
    6884}
Note: See TracChangeset for help on using the changeset viewer.