Changeset 540 in dev for trunk/ab5.0/abdev/BasicCompiler_Common/src
- Timestamp:
- May 4, 2008, 12:17:40 AM (17 years ago)
- Location:
- trunk/ab5.0/abdev/BasicCompiler_Common/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/BasicCompiler_Common/src/Class.cpp
r538 r540 14 14 using namespace ActiveBasic::Compiler; 15 15 16 void CClass::Using() const 17 { 18 if( this->IsUsing() ) 19 { 20 // 既に使用することになっている 21 return; 22 } 23 24 Prototype::Using(); 25 26 // 仮想関数になるメソッドに使用チェックをつける 27 const CClass &objThis = *this; 28 BOOST_FOREACH( const CMethod *pMethod, objThis.GetDynamicMethods() ) 29 { 30 if( pMethod->IsVirtual() ) 31 { 32 pMethod->GetUserProc().Using(); 33 } 34 } 35 } 16 36 17 37 bool CClass::IsClass() const … … 1153 1173 return Find( NamespaceScopes( AreaName ), NestName ); 1154 1174 } 1155 void Classes::StartCompile( const UserProc *pUserProc ){1156 const CClass *pParentClass = pUserProc->GetParentClassPtr();1157 if( pParentClass ){1158 pParentClass->Using();1159 1160 // 仮想関数になるメソッドに使用チェックをつける1161 BOOST_FOREACH( const CMethod *pMethod, pParentClass->GetDynamicMethods() )1162 {1163 if( pMethod->IsVirtual() )1164 {1165 pMethod->GetUserProc().Using();1166 }1167 }1168 }1169 }1170 1175 1171 1176 const CClass *Classes::GetStringClassPtr() const -
trunk/ab5.0/abdev/BasicCompiler_Common/src/Compiler.cpp
r537 r540 239 239 this->SetCompilingUserProc( pUserProc ); 240 240 241 //コンパイルスタートをクラス管理クラスに追加 242 this->GetObjectModule().meta.GetClasses().StartCompile( pUserProc ); 241 if( pUserProc->HasParentClass() ) 242 { 243 // クラスの使用チェック 244 pUserProc->GetParentClass().Using(); 245 } 243 246 244 247 // コンパイル中の関数が属する名前空間
Note:
See TracChangeset
for help on using the changeset viewer.