Changeset 63 in dev for BasicCompiler64/Compile_ProcOp.cpp
- Timestamp:
- Feb 23, 2007, 2:12:26 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler64/Compile_ProcOp.cpp
r51 r63 569 569 570 570 //実体クラスを持つメンバのコンストラクタ(引数有りを除く)を呼び出す 571 int offset;572 int MemberTypeSize;573 int MemberObjectNum;574 if(pobj_CompilingClass->vtbl_num) offset=PTR_SIZE;575 else offset=0;576 571 for(i3=0;i3<pobj_CompilingClass->iMemberNum;i3++){ 577 572 CMember *pMember = pobj_CompilingClass->ppobj_Member[i3]; 578 MemberTypeSize=573 int MemberTypeSize= 579 574 GetTypeSize(pMember->TypeInfo.type, 580 575 pMember->TypeInfo.u.lpIndex); 581 576 582 MemberObjectNum=577 int MemberObjectNum= 583 578 JumpSubScripts(pMember->SubScripts); 584 579 585 offset=GetSizeOfClassMember(pobj_CompilingClass,pMember->name,NULL);580 int offset = pobj_CompilingClass->GetMemberOffset( pMember->name, NULL ); 586 581 587 582 if(pMember->TypeInfo.type==DEF_OBJECT && pMember->IsRef() == false){ … … 608 603 pobj_CompilingClass->IsAbstract()==false){ 609 604 //関数テーブルに値をセット 610 offset=(int)pobj_CompilingClass->GetVtblGlobalOffset();605 int offset = (int)pobj_CompilingClass->GetVtblGlobalOffset(); 611 606 612 607 //mov rax,offset … … 672 667 //実体クラスを持つメンバのデストラクタを呼び出す 673 668 //※コンストラクタと逆順序で呼び出す 674 int offset;675 int MemberTypeSize;676 int MemberObjectNum;677 669 for(i3=pobj_CompilingClass->iMemberNum-1;i3>=0;i3--){ 678 670 CMember *pMember = pobj_CompilingClass->ppobj_Member[i3]; 679 MemberTypeSize=671 int MemberTypeSize= 680 672 GetTypeSize(pMember->TypeInfo.type, 681 673 pMember->TypeInfo.u.lpIndex); 682 674 683 MemberObjectNum=675 int MemberObjectNum= 684 676 JumpSubScripts(pMember->SubScripts); 685 677 686 offset=GetSizeOfClassMember(pobj_CompilingClass,pMember->name,NULL);678 int offset = pobj_CompilingClass->GetMemberOffset( pMember->name, NULL ); 687 679 688 680 if(pMember->TypeInfo.type==DEF_OBJECT && pMember->IsRef() == false){
Note:
See TracChangeset
for help on using the changeset viewer.