Changeset 63 in dev


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

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

Files:
23 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler32/CParameter.cpp

    r59 r63  
    130130
    131131void CParameter::SetObjectParameter(CClass *pobj_Class,LPSTR Parameter){
    132     int object_size;
    133     object_size=GetSizeOfClass(pobj_Class);
     132    int object_size = pobj_Class->GetSize();
    134133
    135134    //push object_size
  • BasicCompiler32/Compile_CallProc.cpp

    r51 r63  
    259259        //////////////////////////////////////////////////////
    260260
    261         int object_size;
    262         object_size=GetSizeOfClass(psi->u.Return_pobj_c);
     261        int object_size = psi->u.Return_pobj_c->GetSize();
    263262
    264263        //push object_size
  • BasicCompiler32/Compile_ProcOp.cpp

    r55 r63  
    515515
    516516            //実体クラスを持つメンバのコンストラクタ(引数有りを除く)を呼び出す
    517             int offset;
    518             int MemberTypeSize;
    519             int MemberObjectNum;
    520             if(pobj_CompilingClass->vtbl_num) offset=PTR_SIZE;
    521             else offset=0;
    522517            for(i3=0;i3<pobj_CompilingClass->iMemberNum;i3++){
    523518                CMember *pMember = pobj_CompilingClass->ppobj_Member[i3];
    524                 MemberTypeSize=
     519                int MemberTypeSize=
    525520                    GetTypeSize(pMember->TypeInfo.type,
    526521                        pMember->TypeInfo.u.lpIndex);
    527522
    528                 MemberObjectNum=
     523                int MemberObjectNum=
    529524                    JumpSubScripts(pMember->SubScripts);
    530525
    531                 offset=GetSizeOfClassMember(pobj_CompilingClass,pMember->name,NULL);
     526                int offset = pobj_CompilingClass->GetMemberOffset( pMember->name, NULL );
    532527
    533528                if(pMember->TypeInfo.type==DEF_OBJECT && pMember->IsRef() == false){
     
    561556                pobj_CompilingClass->IsAbstract()==false){
    562557                    //関数テーブルに値をセット
    563                     offset=pobj_CompilingClass->GetVtblGlobalOffset();
     558                    int offset = (int)pobj_CompilingClass->GetVtblGlobalOffset();
    564559
    565560                    //mov eax,offset
  • BasicCompiler32/Compile_Set_Var.cpp

    r62 r63  
    4646                //※コピーを行う
    4747
    48                 int object_size;
    49                 object_size=GetSizeOfClass((CClass *)lpVarIndex);
     48                int object_size = pVarClass->GetSize();
    5049
    5150                //mov ecx,object_size
  • BasicCompiler32/Compile_Var.cpp

    r62 r63  
    2525        *pType=MAKE_PTR_TYPE(NATURAL_TYPE(*pType),PTR_LEVEL(*pType)-1);
    2626        if((*pType)==DEF_OBJECT){
     27            CClass *pClass = (CClass *)lpIndex;
     28            int objsize = pClass->GetSize();
     29
    2730            //imul ebx,objsize
    2831            OpBuffer[obp++]=(char)0x69;
    2932            OpBuffer[obp++]=(char)0xDB;
    30             *((long *)(OpBuffer+obp))=GetSizeOfClassMember((CClass *)lpIndex,NULL,NULL);
     33            *((long *)(OpBuffer+obp))=objsize;
    3134            obp+=sizeof(long);
    3235        }
     
    158161}
    159162BOOL GetMemberOffset(bool isErrorEnabled, bool isWriteAccess, CClass *pobj_c, char *member, int *pType, RELATIVE_VAR *pRelativeVar, LONG_PTR *plpNestIndex, BOOL bPrivateAccess){
    160     int i,offset;
     163    int i;
    161164
    162165    //クラス、配列の構成要素を解析する
     
    173176    ////////////////////////////
    174177
    175     offset=GetSizeOfClassMember(pobj_c,VarName,&i);
     178    int offset=pobj_c->GetMemberOffset( VarName, &i );
    176179    if(i==pobj_c->iMemberNum){
    177180        if(isErrorEnabled) SetError(103,VarName,cp);
     
    789792                i=GetOneParameter(InitBuf,i,temporary);
    790793
    791                 i3=GetSizeOfClassMember(pobj_c,pobj_c->ppobj_Member[i2]->name,NULL);
     794                i3=pobj_c->GetMemberOffset( pobj_c->ppobj_Member[i2]->name, NULL );
    792795
    793796                if(!SetInitGlobalData(offset+i3,
     
    922925                i=GetOneParameter(InitBuf,i,temporary);
    923926
    924                 i3=GetSizeOfClassMember(pobj_c,pobj_c->ppobj_Member[i2]->name,NULL);
     927                i3 = pobj_c->GetMemberOffset( pobj_c->ppobj_Member[i2]->name, NULL );
    925928
    926929                if(!InitLocalVar(offset+i3,
  • BasicCompiler32/NumOpe.cpp

    r56 r63  
    7575
    7676    extern CClass *pobj_StringClass;
    77     int object_size;
    78     object_size=GetSizeOfClass(pobj_StringClass);
     77    int object_size = pobj_StringClass->GetSize();
    7978
    8079    //push object_size
  • BasicCompiler32/OperatorProc.cpp

    r51 r63  
    125125        //////////////////////////////////////////////////////
    126126
    127         int object_size;
    128         object_size=GetSizeOfClass(psi->u.Return_pobj_c);
     127        int object_size = psi->u.Return_pobj_c->GetSize();
    129128
    130129        //push object_size
  • BasicCompiler32/VarList.cpp

    r55 r63  
    165165        }
    166166
    167         LONG_PTR offset;
    168         offset=GetSizeOfClassMember(pobj_c,pobj_c->ppobj_Member[i]->name,&i2);
     167        LONG_PTR offset = pobj_c->GetMemberOffset( pobj_c->ppobj_Member[i]->name, &i2 );
    169168
    170169        if(pobj_c->ppobj_Member[i]->SubScripts[0]!=-1){
     
    423422
    424423    for(i=0;i<psi->pobj_ParentClass->iMemberNum;i++){
    425         offset=GetSizeOfClassMember(psi->pobj_ParentClass,psi->pobj_ParentClass->ppobj_Member[i]->name,&i2);
     424        offset = psi->pobj_ParentClass->GetMemberOffset( psi->pobj_ParentClass->ppobj_Member[i]->name, &i2 );
    426425
    427426        if(psi->pobj_ParentClass->ppobj_Member[i]->SubScripts[0]!=-1){
  • BasicCompiler32/WatchList.cpp

    r62 r63  
    7878    if(PTR_LEVEL(*pType)){
    7979        *pType=MAKE_PTR_TYPE(NATURAL_TYPE(*pType),PTR_LEVEL(*pType)-1);
    80         if((*pType)==DEF_OBJECT)
    81             array_num*=GetSizeOfClass((CClass *)lpIndex);
    82         else
    83             array_num*=GetTypeSize(*pType,-1);
     80        if((*pType)==DEF_OBJECT){
     81            CClass *pClass = (CClass *)lpIndex;
     82            array_num *= pClass->GetSize();
     83        }
     84        else{
     85            array_num *= GetTypeSize(*pType,-1);
     86        }
    8487    }
    8588    else{
     
    100103
    101104BOOL Debugging_GetMember(CClass *pobj_c,char *member,int *pType,RELATIVE_VAR *pRelativeVar,LONG_PTR *plpNestIndex,BOOL bPrivateAccess){
    102     int i,i2,offset;
     105    int i,i2;
    103106
    104107    //直接参照に切り替え
     
    120123    ////////////////////////////
    121124
    122     offset=GetSizeOfClassMember(pobj_c,VarName,&i);
     125    int offset = pobj_c->GetMemberOffset( VarName, &i );
    123126    if(i==pobj_c->iMemberNum) return 0;
    124127
  • BasicCompiler64/CParameter.cpp

    r59 r63  
    118118    //////////////////////////////////////////////////////
    119119
    120         int object_size;
    121         object_size=GetSizeOfClass(pobj_Class);
     120        int object_size = pobj_Class->GetSize();
    122121
    123122        //mov rcx,object_size
  • BasicCompiler64/Compile_CallProc.cpp

    r51 r63  
    267267        //////////////////////////////////////////////////////
    268268
    269             int object_size;
    270             object_size=GetSizeOfClass(psi->u.Return_pobj_c);
     269            int object_size = psi->u.Return_pobj_c->GetSize();
    271270
    272271            //mov rcx,object_size
  • 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){
  • BasicCompiler64/Compile_Set_Var.cpp

    r62 r63  
    9393                op_mov_RR(REG_RDI,VarReg);
    9494
    95                 int object_size = GetSizeOfClass((CClass *)lpVarIndex);
     95                CClass *pClass = (CClass *)lpVarIndex;
     96                int object_size = pClass->GetSize();
    9697
    9798                //mov rcx,object_size
  • BasicCompiler64/Compile_Var.cpp

    r62 r63  
    4343        *pType=MAKE_PTR_TYPE(NATURAL_TYPE(*pType),PTR_LEVEL(*pType)-1);
    4444        if((*pType)==DEF_OBJECT){
     45            CClass *pClass = (CClass *)lpIndex;
    4546            //imul reg,objsize
    46             op_imul_value(sizeof(_int64),reg,GetSizeOfClassMember((CClass *)lpIndex,NULL,NULL));
     47            op_imul_value( sizeof(_int64), reg, pClass->GetSize() );
    4748        }
    4849        else{
     
    180181}
    181182BOOL GetMemberOffset(bool isErrorEnabled, bool isWriteAccess, CClass *pobj_c, char *member, int *pType, RELATIVE_VAR *pRelativeVar, LONG_PTR *plpNestIndex, BOOL bPrivateAccess){
    182     int i,offset;
     183    int i;
    183184
    184185
     
    200201    ////////////////////////////
    201202
    202     offset=GetSizeOfClassMember(pobj_c,VarName,&i);
     203    int offset = pobj_c->GetMemberOffset( VarName, &i );
    203204    if(i==pobj_c->iMemberNum){
    204205        if(isErrorEnabled) SetError(103,VarName,cp);
     
    821822                i=GetOneParameter(InitBuf,i,temporary);
    822823
    823                 i3=GetSizeOfClassMember(pobj_c,pobj_c->ppobj_Member[i2]->name,NULL);
     824                i3=pobj_c->GetMemberOffset( pobj_c->ppobj_Member[i2]->name, NULL );
    824825
    825826                if(!SetInitGlobalData(offset+i3,
     
    959960                i=GetOneParameter(InitBuf,i,temporary);
    960961
    961                 i3=GetSizeOfClassMember(pobj_c,pobj_c->ppobj_Member[i2]->name,NULL);
     962                i3=pobj_c->GetMemberOffset( pobj_c->ppobj_Member[i2]->name, NULL );
    962963
    963964                if(!InitLocalVar(offset+i3,
  • BasicCompiler64/NumOpe.cpp

    r56 r63  
    1515
    1616        extern CClass *pobj_StringClass;
    17         int object_size;
    18         object_size=GetSizeOfClass(pobj_StringClass);
     17        int object_size = pobj_StringClass->GetSize();
    1918
    2019        //mov rcx,object_size
  • BasicCompiler64/OperatorProc.cpp

    r51 r63  
    137137        //////////////////////////////////////////////////////
    138138
    139             int object_size;
    140             object_size=GetSizeOfClass(psi->u.Return_pobj_c);
     139            int object_size = psi->u.Return_pobj_c->GetSize();
    141140
    142141            //mov rcx,object_size
  • BasicCompiler64/WatchList.cpp

    r62 r63  
    7878    if(PTR_LEVEL(*pType)){
    7979        *pType=MAKE_PTR_TYPE(NATURAL_TYPE(*pType),PTR_LEVEL(*pType)-1);
    80         if((*pType)==DEF_OBJECT)
    81             array_num*=GetSizeOfClassMember((CClass *)lpIndex,NULL,NULL);
    82         else
    83             array_num*=GetTypeSize(*pType,-1);
     80        if((*pType)==DEF_OBJECT){
     81            CClass *pClass = (CClass *)lpIndex;
     82            array_num *= pClass->GetSize();
     83        }
     84        else{
     85            array_num *= GetTypeSize(*pType,-1);
     86        }
    8487    }
    8588    else{
     
    100103
    101104BOOL Debugging_GetMember(CClass *pobj_c,char *member,int *pType,RELATIVE_VAR *pRelativeVar,LONG_PTR *plpNestIndex,BOOL bPrivateAccess){
    102     int i,i2,offset;
     105    int i,i2;
    103106
    104107    //直接参照に切り替え
     
    120123    ////////////////////////////
    121124
    122     offset=GetSizeOfClassMember(pobj_c,VarName,&i);
     125    int offset = pobj_c->GetMemberOffset( VarName, &i );
    123126    if(i==pobj_c->iMemberNum) return 0;
    124127
  • BasicCompiler64/varlist.cpp

    r55 r63  
    168168
    169169        LONG_PTR offset;
    170         offset=GetSizeOfClassMember(pobj_c,pobj_c->ppobj_Member[i]->name,&i2);
     170        offset=pobj_c->GetMemberOffset( pobj_c->ppobj_Member[i]->name, &i2 );
    171171
    172172        if(pobj_c->ppobj_Member[i]->SubScripts[0]!=-1){
     
    428428
    429429    for(i=0;i<psi->pobj_ParentClass->iMemberNum;i++){
    430         offset=GetSizeOfClassMember(psi->pobj_ParentClass,psi->pobj_ParentClass->ppobj_Member[i]->name,&i2);
     430        offset=psi->pobj_ParentClass->GetMemberOffset( psi->pobj_ParentClass->ppobj_Member[i]->name,&i2);
    431431
    432432        if(psi->pobj_ParentClass->ppobj_Member[i]->SubScripts[0]!=-1){
  • BasicCompiler_Common/Class.cpp

    r62 r63  
    409409    return methods[DestructorMemberSubIndex];
    410410}
     411
     412//サイズを取得
     413int CClass::GetSize() const
     414{
     415    return GetMemberOffset( NULL, NULL );
     416}
     417
     418//メンバのオフセットを取得
     419int CClass::GetMemberOffset( const char *memberName, int *pMemberNum ) const
     420{
     421    int i,i2,offset;
     422
     423    //仮想関数が存在する場合は関数リストへのポインタのサイズを追加
     424    if(vtbl_num) offset=PTR_SIZE;
     425    else offset=0;
     426
     427    int alignment;
     428    if(iAlign) alignment=iAlign;
     429    else alignment=1;
     430
     431    int iMaxAlign=0;
     432    for(i=0;i<iMemberNum;i++){
     433        CMember *pMember = ppobj_Member[i];
     434
     435        i2 = pMember->GetSize();
     436
     437        //アラインメントを算出
     438        int member_size;
     439        if(pMember->TypeInfo.type==DEF_OBJECT){
     440            //メンバクラスのアラインメントを取得
     441            member_size=pMember->TypeInfo.u.pobj_Class->GetAlignment();
     442        }
     443        else{
     444            //メンバサイズを取得
     445            member_size=i2;
     446        }
     447        if(iMaxAlign<member_size) iMaxAlign=member_size;
     448
     449        //アラインメントを考慮
     450        if(iAlign&&iAlign<member_size){
     451            if(offset%alignment) offset+=alignment-(offset%alignment);
     452        }
     453        else{
     454            if(alignment<member_size) alignment=member_size;
     455
     456            if(member_size==0){
     457                //メンバを持たないクラス
     458                //※何もしない(オフセットの計算をしない)
     459            }
     460            else{
     461                if(offset%member_size) offset+=member_size-(offset%member_size);
     462            }
     463        }
     464
     465        if(memberName){
     466            //メンバ指定がある場合は、オフセットを返す
     467            if(lstrcmp(pMember->name,memberName)==0){
     468                if(pMemberNum) *pMemberNum=i;
     469                return offset;
     470            }
     471        }
     472
     473        //配列を考慮したメンバサイズを取得
     474        member_size=i2 * JumpSubScripts(pMember->SubScripts);
     475
     476        //メンバサイズを加算
     477        offset+= member_size;
     478    }
     479
     480    if(iMaxAlign<alignment) alignment=iMaxAlign;
     481
     482    //アラインメントを考慮
     483    if(alignment){
     484        if(offset%alignment) offset+=alignment-(offset%alignment);
     485    }
     486
     487    if(pMemberNum) *pMemberNum=i;
     488    return offset;
     489}
     490
     491int CClass::GetAlignment() const
     492{
     493    int i;
     494    int alignment,member_size;
     495
     496    if(vtbl_num) alignment=PTR_SIZE;
     497    else alignment=0;
     498
     499    for(i=0;i<iMemberNum;i++){
     500        CMember *pMember = ppobj_Member[i];
     501
     502        if(pMember->TypeInfo.type==DEF_OBJECT && pMember->IsRef() == false){
     503            //メンバクラスのアラインメントを取得
     504            member_size=pMember->TypeInfo.u.pobj_Class->GetAlignment();
     505        }
     506        else{
     507            //メンバサイズを取得
     508            member_size = pMember->GetSize();
     509        }
     510
     511        //アラインメントをセット
     512        if(alignment<member_size) alignment=member_size;
     513    }
     514
     515    if(alignment==0) return 0;
     516
     517    if(iAlign) alignment=iAlign;
     518
     519    return alignment;
     520}
     521
    411522
    412523
  • BasicCompiler_Common/Class.h

    r59 r63  
    136136    CMethod *GetDestructorMethod() const;
    137137
     138    // メンバの総合サイズを取得
     139    int GetSize() const;
     140
     141    // メンバのオフセットを取得
     142    int GetMemberOffset( const char *memberName, int *pMemberNum ) const;
     143
     144private:
     145    // アラインメント値を取得
     146    int GetAlignment() const;
     147
    138148
    139149    //vtbl
  • BasicCompiler_Common/Object.cpp

    r50 r63  
    88
    99extern HANDLE hHeap;
    10 
    11 int GetAlignment(CClass *pobj_c){
    12     int i;
    13     int alignment,member_size;
    14 
    15     if(pobj_c->vtbl_num) alignment=PTR_SIZE;
    16     else alignment=0;
    17 
    18     for(i=0;i<pobj_c->iMemberNum;i++){
    19         CMember *pMember = pobj_c->ppobj_Member[i];
    20 
    21         if(pMember->TypeInfo.type==DEF_OBJECT && pMember->IsRef() == false){
    22             //メンバクラスのアラインメントを取得
    23             member_size=GetAlignment(pMember->TypeInfo.u.pobj_Class);
    24         }
    25         else{
    26             //メンバサイズを取得
    27             member_size = pMember->GetSize();
    28         }
    29 
    30         //アラインメントをセット
    31         if(alignment<member_size) alignment=member_size;
    32     }
    33 
    34     if(alignment==0) return 0;
    35 
    36     if(pobj_c->iAlign) alignment=pobj_c->iAlign;
    37 
    38     return alignment;
    39 }
    40 int GetSizeOfClassMember(CClass *pobj_c,char *pMemberName,int *pMemberNum){
    41     int i,i2,offset;
    42 
    43     //仮想関数が存在する場合は関数リストへのポインタのサイズを追加
    44     if(pobj_c->vtbl_num) offset=PTR_SIZE;
    45     else offset=0;
    46 
    47     int alignment;
    48     if(pobj_c->iAlign) alignment=pobj_c->iAlign;
    49     else alignment=1;
    50 
    51     int iMaxAlign=0;
    52     for(i=0;i<pobj_c->iMemberNum;i++){
    53         CMember *pMember = pobj_c->ppobj_Member[i];
    54 
    55         i2 = pMember->GetSize();
    56 
    57         //アラインメントを算出
    58         int member_size;
    59         if(pMember->TypeInfo.type==DEF_OBJECT){
    60             //メンバクラスのアラインメントを取得
    61             member_size=GetAlignment(pMember->TypeInfo.u.pobj_Class);
    62         }
    63         else{
    64             //メンバサイズを取得
    65             member_size=i2;
    66         }
    67         if(iMaxAlign<member_size) iMaxAlign=member_size;
    68 
    69         //アラインメントを考慮
    70         if(pobj_c->iAlign&&pobj_c->iAlign<member_size){
    71             if(offset%alignment) offset+=alignment-(offset%alignment);
    72         }
    73         else{
    74             if(alignment<member_size) alignment=member_size;
    75 
    76             if(member_size==0){
    77                 //メンバを持たないクラス
    78                 //※何もしない(オフセットの計算をしない)
    79             }
    80             else{
    81                 if(offset%member_size) offset+=member_size-(offset%member_size);
    82             }
    83         }
    84 
    85         if(pMemberName){
    86             //メンバ指定がある場合は、オフセットを返す
    87             if(lstrcmp(pMember->name,pMemberName)==0){
    88                 if(pMemberNum) *pMemberNum=i;
    89                 return offset;
    90             }
    91         }
    92 
    93         //配列を考慮したメンバサイズを取得
    94         member_size=i2 * JumpSubScripts(pMember->SubScripts);
    95 
    96         //メンバサイズを加算
    97         offset+= member_size;
    98     }
    99 
    100     if(iMaxAlign<alignment) alignment=iMaxAlign;
    101 
    102     //アラインメントを考慮
    103     if(alignment){
    104         if(offset%alignment) offset+=alignment-(offset%alignment);
    105     }
    106 
    107     if(pMemberNum) *pMemberNum=i;
    108     return offset;
    109 }
    110 int GetSizeOfClass(CClass *pobj_c){
    111     return GetSizeOfClassMember(pobj_c,0,0);
    112 }
    113 
    11410
    11511void CallConstructor(char *ObjectName,int *SubScripts,TYPEINFO &TypeInfo,char *Parameter){
  • BasicCompiler_Common/Variable.cpp

    r62 r63  
    161161        pobj_c=(CClass *)lpIndex;
    162162        if(!pobj_c) return 0;
    163         return GetSizeOfClass(pobj_c);
     163        return pobj_c->GetSize();
    164164    }
    165165    else{
  • BasicCompiler_Common/common.h

    r60 r63  
    426426
    427427//Object.cpp
    428 int GetSizeOfClassMember(CClass *pobj_c,char *pMemberName,int *pMemberNum);
    429 int GetSizeOfClass(CClass *pobj_c);
    430428void AddClassName(char *Parameter,int NowLine);
    431429void CallConstructor(char *VarName,int *SubScripts,TYPEINFO &TypeInfo,char *Parameter);
Note: See TracChangeset for help on using the changeset viewer.