Changeset 584 in dev for trunk/ab5.0/abdev/compiler_x64/Compile_CallProc.cpp
- Timestamp:
- May 10, 2008, 12:19:15 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/compiler_x64/Compile_CallProc.cpp
r514 r584 121 121 { 122 122 //クラスメンバ関数内から基底クラスの呼び出し 123 pobj_c=&compiler. pCompilingClass->GetSuperClass();123 pobj_c=&compiler.GetCompilingClass().GetSuperClass(); 124 124 125 125 isFixedClass = true; … … 140 140 if( !pobj_c ) 141 141 { 142 pobj_c =compiler.GetObjectModule().meta.GetClasses().Find(ObjectName);142 pobj_c = compiler.GetObjectModule().meta.FindClassSupportedTypeDef( ObjectName ); 143 143 if( pobj_c ){ 144 144 isStatic = true; … … 155 155 156 156 //New演算子によるコンストラクタ呼び出し 157 pobj_c =pUserProc->GetParentClassPtr();157 pobj_c = pUserProc->GetParentClassPtr(); 158 158 } 159 159 else{ 160 160 //クラスメンバ関数内から同一クラスのメンバ関数の呼び出し 161 pobj_c =compiler.pCompilingClass;161 pobj_c = &compiler.GetCompilingClass(); 162 162 } 163 163 } … … 188 188 if(ObjectName[0]){ 189 189 //外部からの呼び出し 190 if(pobj_c==compiler.pCompilingClass){ 190 if( compiler.IsCompilingClass() && pobj_c == &compiler.GetCompilingClass() ) 191 { 191 192 //同一クラスオブジェクトの場合はプライベートアクセスを容認する 192 if( pMethod->IsNoneAccess() ){ 193 if( pMethod->IsNoneAccess() ) 194 { 193 195 compiler.errorMessenger.Output(109,pUserProc->GetName(),cp); 194 196 return false; 195 197 } 196 198 } 197 else{ 199 else 200 { 198 201 if( pMethod->IsPrivate() 199 || pMethod->IsNoneAccess() ){ 202 || pMethod->IsNoneAccess() ) 203 { 200 204 compiler.errorMessenger.Output(109,pUserProc->GetName(),cp); 201 205 return false; 202 206 } 203 if( !pMethod->GetUserProc().GetParentClass().IsEqualsOrSubClass( pobj_c ) && pMethod->IsProtected() ){ 207 if( !pMethod->GetUserProc().GetParentClass().IsEqualsOrSubClass( pobj_c ) && pMethod->IsProtected() ) 208 { 204 209 compiler.errorMessenger.Output(110,pUserProc->GetName(),cp); 205 210 return false;
Note: See TracChangeset
for help on using the changeset viewer.