Changeset 288 in dev for trunk/abdev/BasicCompiler_Common/src/LexicalScope.cpp
- Timestamp:
- Aug 17, 2007, 7:36:51 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler_Common/src/LexicalScope.cpp
r276 r288 71 71 CallDestructorsOfScopeEnd(); 72 72 73 Variables &vars = UserProc::IsGlobalAreaCompiling() ?74 compiler.GetObjectModule().meta.GetGlobalVars() :75 UserProc::CompilingUserProc().GetLocalVars();73 Variables *pVars = UserProc::IsGlobalAreaCompiling() ? 74 &compiler.GetObjectModule().meta.GetGlobalVars() : 75 &UserProc::CompilingUserProc().GetLocalVars(); 76 76 77 77 //使用済みローカル変数の生存チェックを外す 78 BOOST_FOREACH( Variable *pVar, vars){78 BOOST_FOREACH( Variable *pVar, (*pVars) ){ 79 79 if(pVar->bLiving&&pVar->GetScopeLevel()==level){ 80 80 pVar->bLiving=0; … … 96 96 void LexicalScopes::CallDestructorsOfScopeEnd(){ 97 97 98 Variables &vars = UserProc::IsGlobalAreaCompiling() ?99 compiler.GetObjectModule().meta.GetGlobalVars() :100 UserProc::CompilingUserProc().GetLocalVars();98 Variables *pVariabls = UserProc::IsGlobalAreaCompiling() ? 99 &compiler.GetObjectModule().meta.GetGlobalVars() : 100 &UserProc::CompilingUserProc().GetLocalVars(); 101 101 102 102 103 103 int i3; 104 104 int indexSystemGC=-1; 105 for( i3 = (int) vars.size() - 1; i3 >= 0; i3-- ){ //確保したのと逆順序で解放するため、バックサーチにする105 for( i3 = (int)pVariabls->size() - 1; i3 >= 0; i3-- ){ //確保したのと逆順序で解放するため、バックサーチにする 106 106 107 Variable *pVar = vars[i3];107 Variable *pVar = (*pVariabls)[i3]; 108 108 109 109 if( UserProc::IsGlobalAreaCompiling() && GetNowLevel() == 0 ){ … … 159 159 if(indexSystemGC!=-1){ 160 160 //_System_GCオブジェクトのデストラクタの呼び出し処理 161 const CMethod *method = vars[indexSystemGC]->GetType().GetClass().GetDestructorMethod();161 const CMethod *method = (*pVariabls)[indexSystemGC]->GetType().GetClass().GetDestructorMethod(); 162 162 if( method ){ 163 Opcode_CallProc("",&method->GetUserProc(),0, vars[indexSystemGC]->GetName().c_str(),DEF_OBJECT);163 Opcode_CallProc("",&method->GetUserProc(),0,(*pVariabls)[indexSystemGC]->GetName().c_str(),DEF_OBJECT); 164 164 } 165 165 }
Note:
See TracChangeset
for help on using the changeset viewer.