Changeset 140 in dev for BasicCompiler64/Compile_ProcOp.cpp
- Timestamp:
- Jun 15, 2007, 4:00:25 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler64/Compile_ProcOp.cpp
r135 r140 566 566 } 567 567 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 583 568 //仮想関数テーブルを初期化 584 569 if(pobj_CompilingClass->vtbl_num&& … … 659 644 } 660 645 } 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,offset684 op_add_RV(REG_RCX,offset+i4*MemberTypeSize);685 686 //call destructor687 op_call(method->pUserProc);688 }689 }690 }691 }*/692 646 } 693 647 }
Note:
See TracChangeset
for help on using the changeset viewer.