Ignore:
Timestamp:
Jun 15, 2007, 4:00:25 AM (17 years ago)
Author:
dai_9181
Message:

traceログ機能を搭載
動的メンバをstl::vectorにまとめた
シンボルをクラス化した

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler64/Compile_ProcOp.cpp

    r135 r140  
    566566            }
    567567
    568             //新しいオブジェクト領域は0で初期化されているため、Nothingを明示的に代入する必要はない
    569 /*
    570             //実体クラスを持つメンバのコンストラクタ(引数有りを除く)を呼び出す
    571             for(i3=0;i3<pobj_CompilingClass->iMemberNum;i3++){
    572                 CMember *pMember = pobj_CompilingClass->ppobj_Member[i3];
    573                 if(pMember->IsObject()){
    574                     // オブジェクトメンバを発見したとき
    575 
    576                     sprintf(temporary, "This.%s=Nothing",
    577                         pMember->name );
    578                     OpcodeCalc( temporary );
    579                 }
    580             }
    581 */
    582 
    583568            //仮想関数テーブルを初期化
    584569            if(pobj_CompilingClass->vtbl_num&&
     
    659644                }
    660645            }
    661 
    662             //実体クラスを持つメンバのデストラクタ呼び出しはGCに任せる
    663             /*
    664             //※コンストラクタと逆順序で呼び出す
    665             for(i3=pobj_CompilingClass->iMemberNum-1;i3>=0;i3--){
    666                 CMember *pMember = pobj_CompilingClass->ppobj_Member[i3];
    667                 int MemberTypeSize=
    668                     GetTypeSize(pMember->TypeInfo.type,
    669                         pMember->TypeInfo.u.lpIndex);
    670 
    671                 int MemberObjectNum=
    672                     JumpSubScripts(pMember->SubScripts);
    673 
    674                 int offset = pobj_CompilingClass->GetMemberOffset( pMember->name, NULL );
    675 
    676                 if(pMember->IsObject()){
    677                     CMethod *method = pMember->GetClass().GetDestructorMethod();
    678                     if( method ){
    679                         for(i4=MemberObjectNum-1;i4>=0;i4--){
    680                             //Thisポインタをrcxにコピー
    681                             SetThisPtrToReg(REG_RCX);
    682 
    683                             //add rcx,offset
    684                             op_add_RV(REG_RCX,offset+i4*MemberTypeSize);
    685 
    686                             //call destructor
    687                             op_call(method->pUserProc);
    688                         }
    689                     }
    690                 }
    691             }*/
    692646        }
    693647    }
Note: See TracChangeset for help on using the changeset viewer.