Ignore:
Timestamp:
Feb 10, 2007, 8:30:19 PM (18 years ago)
Author:
dai_9181
Message:

ppobj_Member及びppobj_StaticMemberを廃止し、vectorに統一した(methods及びstaticMethods)。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler_Common/LexicalScoping.cpp

    r34 r51  
    182182
    183183
    184     int i3,i4,i5;
     184    int i3,i4;
    185185    int indexSystemGC=-1;
    186186    for( i3 = num - 1; i3 >= 0; i3-- ){     //確保したのと逆順序で解放するため、バックサーチにする
     
    201201
    202202            //デストラクタを呼び出す
    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            }
    206207
    207208            //メモリを解放する
     
    242243        else if(pVar[i3].type==DEF_OBJECT&&pVar[i3].fRef==0){
    243244            //デストラクタの呼び出し
    244             i5=pVar[i3].u.pobj_c->DestructorMemberSubIndex;
    245             if(i5!=-1){
     245            CMethod *method = pVar[i3].u.pobj_c->GetDestructorMethod();
     246            if( method ){
    246247                int ss[MAX_ARRAYDIM];
    247248                memset(ss,0,MAX_ARRAYDIM*sizeof(int));
     
    266267                        }
    267268                        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);
    269270
    270271                        ss[0]++;
     
    280281                }
    281282                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);
    283284                }
    284285            }
     
    288289    if(indexSystemGC!=-1){
    289290        //_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);
    293294        }
    294295    }
Note: See TracChangeset for help on using the changeset viewer.