Changeset 51 in dev for BasicCompiler_Common/LexicalScoping.cpp
- Timestamp:
- Feb 10, 2007, 8:30:19 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler_Common/LexicalScoping.cpp
r34 r51 182 182 183 183 184 int i3,i4 ,i5;184 int i3,i4; 185 185 int indexSystemGC=-1; 186 186 for( i3 = num - 1; i3 >= 0; i3-- ){ //確保したのと逆順序で解放するため、バックサーチにする … … 201 201 202 202 //デストラクタを呼び出す 203 i5=pVar[i3].u.pobj_c->DestructorMemberSubIndex; 204 if(i5!=-1) 205 Opcode_CallProc("",pVar[i3].u.pobj_c->ppobj_Method[i5]->psi,0,pVar[i3].name,DEF_OBJECT); 203 CMethod *method = pVar[i3].u.pobj_c->GetDestructorMethod(); 204 if( method ){ 205 Opcode_CallProc("", method->psi,0,pVar[i3].name,DEF_OBJECT); 206 } 206 207 207 208 //メモリを解放する … … 242 243 else if(pVar[i3].type==DEF_OBJECT&&pVar[i3].fRef==0){ 243 244 //デストラクタの呼び出し 244 i5=pVar[i3].u.pobj_c->DestructorMemberSubIndex;245 if( i5!=-1){245 CMethod *method = pVar[i3].u.pobj_c->GetDestructorMethod(); 246 if( method ){ 246 247 int ss[MAX_ARRAYDIM]; 247 248 memset(ss,0,MAX_ARRAYDIM*sizeof(int)); … … 266 267 } 267 268 lstrcat(temporary,"]"); 268 Opcode_CallProc("", pVar[i3].u.pobj_c->ppobj_Method[i5]->psi,0,temporary,DEF_OBJECT);269 Opcode_CallProc("",method->psi,0,temporary,DEF_OBJECT); 269 270 270 271 ss[0]++; … … 280 281 } 281 282 else{ 282 Opcode_CallProc("", pVar[i3].u.pobj_c->ppobj_Method[i5]->psi,0,pVar[i3].name,DEF_OBJECT);283 Opcode_CallProc("",method->psi,0,pVar[i3].name,DEF_OBJECT); 283 284 } 284 285 } … … 288 289 if(indexSystemGC!=-1){ 289 290 //_System_GCオブジェクトのデストラクタの呼び出し処理 290 i3=pVar[indexSystemGC].u.pobj_c->DestructorMemberSubIndex;291 if( i3!=-1){292 Opcode_CallProc("", pVar[indexSystemGC].u.pobj_c->ppobj_Method[i3]->psi,0,pVar[indexSystemGC].name,DEF_OBJECT);291 CMethod *method = pVar[indexSystemGC].u.pobj_c->GetDestructorMethod(); 292 if( method ){ 293 Opcode_CallProc("",method->psi,0,pVar[indexSystemGC].name,DEF_OBJECT); 293 294 } 294 295 }
Note:
See TracChangeset
for help on using the changeset viewer.