Changeset 63 in dev for BasicCompiler64/Compile_ProcOp.cpp


Ignore:
Timestamp:
Feb 23, 2007, 2:12:26 AM (17 years ago)
Author:
dai_9181
Message:

CClass::GetSize、CClass::GetMemberOffsetを追加

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler64/Compile_ProcOp.cpp

    r51 r63  
    569569
    570570            //実体クラスを持つメンバのコンストラクタ(引数有りを除く)を呼び出す
    571             int offset;
    572             int MemberTypeSize;
    573             int MemberObjectNum;
    574             if(pobj_CompilingClass->vtbl_num) offset=PTR_SIZE;
    575             else offset=0;
    576571            for(i3=0;i3<pobj_CompilingClass->iMemberNum;i3++){
    577572                CMember *pMember = pobj_CompilingClass->ppobj_Member[i3];
    578                 MemberTypeSize=
     573                int MemberTypeSize=
    579574                    GetTypeSize(pMember->TypeInfo.type,
    580575                        pMember->TypeInfo.u.lpIndex);
    581576
    582                 MemberObjectNum=
     577                int MemberObjectNum=
    583578                    JumpSubScripts(pMember->SubScripts);
    584579
    585                 offset=GetSizeOfClassMember(pobj_CompilingClass,pMember->name,NULL);
     580                int offset = pobj_CompilingClass->GetMemberOffset( pMember->name, NULL );
    586581
    587582                if(pMember->TypeInfo.type==DEF_OBJECT && pMember->IsRef() == false){
     
    608603                pobj_CompilingClass->IsAbstract()==false){
    609604                    //関数テーブルに値をセット
    610                     offset=(int)pobj_CompilingClass->GetVtblGlobalOffset();
     605                    int offset = (int)pobj_CompilingClass->GetVtblGlobalOffset();
    611606
    612607                    //mov rax,offset
     
    672667            //実体クラスを持つメンバのデストラクタを呼び出す
    673668            //※コンストラクタと逆順序で呼び出す
    674             int offset;
    675             int MemberTypeSize;
    676             int MemberObjectNum;
    677669            for(i3=pobj_CompilingClass->iMemberNum-1;i3>=0;i3--){
    678670                CMember *pMember = pobj_CompilingClass->ppobj_Member[i3];
    679                 MemberTypeSize=
     671                int MemberTypeSize=
    680672                    GetTypeSize(pMember->TypeInfo.type,
    681673                        pMember->TypeInfo.u.lpIndex);
    682674
    683                 MemberObjectNum=
     675                int MemberObjectNum=
    684676                    JumpSubScripts(pMember->SubScripts);
    685677
    686                 offset=GetSizeOfClassMember(pobj_CompilingClass,pMember->name,NULL);
     678                int offset = pobj_CompilingClass->GetMemberOffset( pMember->name, NULL );
    687679
    688680                if(pMember->TypeInfo.type==DEF_OBJECT && pMember->IsRef() == false){
Note: See TracChangeset for help on using the changeset viewer.