Changeset 540 in dev for trunk/ab5.0/abdev
- Timestamp:
- May 4, 2008, 12:17:40 AM (17 years ago)
- Location:
- trunk/ab5.0/abdev
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/BasicCompiler_Common/include/Class.h
r539 r540 176 176 } 177 177 178 virtual void Using() const; 179 178 180 void Readed(){ 179 181 isReady = true; … … 497 499 const CClass *Find( const std::string &fullName ) const; 498 500 499 void StartCompile( const UserProc *pUserProc );500 501 501 502 502 ///////////////////////////// -
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 // コンパイル中の関数が属する名前空間 -
trunk/ab5.0/abdev/ab_common/include/Lexical/Prototype.h
r516 r540 57 57 return isUsing; 58 58 } 59 v oid Using() const59 virtual void Using() const 60 60 { 61 61 isUsing = true;
Note:
See TracChangeset
for help on using the changeset viewer.