Changeset 536 in dev for trunk/ab5.0/abdev/compiler_x86/Compile_CallProc.cpp
- Timestamp:
- May 3, 2008, 6:32:50 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/compiler_x86/Compile_CallProc.cpp
r509 r536 113 113 { 114 114 //クラスメンバ関数内から基底クラスの呼び出し 115 pobj_c=&compiler. pCompilingClass->GetSuperClass();115 pobj_c=&compiler.GetCompilingClass().GetSuperClass(); 116 116 117 117 isFixedClass = true; … … 147 147 148 148 //New演算子によるコンストラクタ呼び出し 149 pobj_c =pUserProc->GetParentClassPtr();149 pobj_c = pUserProc->GetParentClassPtr(); 150 150 } 151 151 else{ 152 152 //クラスメンバ関数内から同一クラスのメンバ関数の呼び出し 153 pobj_c =compiler.pCompilingClass;153 pobj_c = &compiler.GetCompilingClass(); 154 154 } 155 155 } … … 180 180 if(ObjectName[0]){ 181 181 //外部からの呼び出し 182 if(pobj_c==compiler.pCompilingClass){ 182 if( compiler.IsCompilingClass() && pobj_c == &compiler.GetCompilingClass() ) 183 { 183 184 //同一クラスオブジェクトの場合はプライベートアクセスを容認する 184 if( pMethod->IsNoneAccess() ){ 185 if( pMethod->IsNoneAccess() ) 186 { 185 187 compiler.errorMessenger.Output(109,pUserProc->GetName(),cp); 186 188 return false; 187 189 } 188 190 } 189 else{ 191 else 192 { 190 193 if( pMethod->IsPrivate() 191 || pMethod->IsNoneAccess() ){ 194 || pMethod->IsNoneAccess() ) 195 { 192 196 compiler.errorMessenger.Output(109,pUserProc->GetName(),cp); 193 197 return false; 194 198 } 195 if( !pMethod->GetUserProc().GetParentClass().IsEqualsOrSubClass( pobj_c ) && pMethod->IsProtected() ){ 199 if( !pMethod->GetUserProc().GetParentClass().IsEqualsOrSubClass( pobj_c ) && pMethod->IsProtected() ) 200 { 196 201 compiler.errorMessenger.Output(110,pUserProc->GetName(),cp); 197 202 return false;
Note:
See TracChangeset
for help on using the changeset viewer.