Ignore:
Timestamp:
May 3, 2008, 6:32:50 PM (16 years ago)
Author:
dai_9181
Message:

Compiler::pCompilingClassメンバをprivateにし、setter/getterにあたるメソッドを用意した。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/compiler_x86/Compile_CallProc.cpp

    r509 r536  
    113113            {
    114114                //クラスメンバ関数内から基底クラスの呼び出し
    115                 pobj_c=&compiler.pCompilingClass->GetSuperClass();
     115                pobj_c=&compiler.GetCompilingClass().GetSuperClass();
    116116
    117117                isFixedClass = true;
     
    147147
    148148                //New演算子によるコンストラクタ呼び出し
    149                 pobj_c=pUserProc->GetParentClassPtr();
     149                pobj_c = pUserProc->GetParentClassPtr();
    150150            }
    151151            else{
    152152                //クラスメンバ関数内から同一クラスのメンバ関数の呼び出し
    153                 pobj_c=compiler.pCompilingClass;
     153                pobj_c = &compiler.GetCompilingClass();
    154154            }
    155155        }
     
    180180        if(ObjectName[0]){
    181181            //外部からの呼び出し
    182             if(pobj_c==compiler.pCompilingClass){
     182            if( compiler.IsCompilingClass() && pobj_c == &compiler.GetCompilingClass() )
     183            {
    183184                //同一クラスオブジェクトの場合はプライベートアクセスを容認する
    184                 if( pMethod->IsNoneAccess() ){
     185                if( pMethod->IsNoneAccess() )
     186                {
    185187                    compiler.errorMessenger.Output(109,pUserProc->GetName(),cp);
    186188                    return false;
    187189                }
    188190            }
    189             else{
     191            else
     192            {
    190193                if( pMethod->IsPrivate()
    191                     || pMethod->IsNoneAccess() ){
     194                    || pMethod->IsNoneAccess() )
     195                {
    192196                    compiler.errorMessenger.Output(109,pUserProc->GetName(),cp);
    193197                    return false;
    194198                }
    195                 if( !pMethod->GetUserProc().GetParentClass().IsEqualsOrSubClass( pobj_c ) && pMethod->IsProtected() ){
     199                if( !pMethod->GetUserProc().GetParentClass().IsEqualsOrSubClass( pobj_c ) && pMethod->IsProtected() )
     200                {
    196201                    compiler.errorMessenger.Output(110,pUserProc->GetName(),cp);
    197202                    return false;
Note: See TracChangeset for help on using the changeset viewer.