Ignore:
Timestamp:
Feb 11, 2007, 12:30:12 AM (18 years ago)
Author:
dai_9181
Message:

ppobj_StaticMemberを廃止し、vectorに統一した(staticMember)。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler_Common/DebugMiddleFile.cpp

    r51 r53  
    382382
    383383        //静的メンバ
    384         *(long *)(buffer+i2)=pobj_c->iStaticMemberNum;
    385         i2+=sizeof(long);
    386         for(i4=0;i4<pobj_c->iStaticMemberNum;i4++){
    387             lstrcpy(buffer+i2,pobj_c->ppobj_StaticMember[i4]->name);
     384        *(long *)(buffer+i2)=(long)pobj_c->staticMembers.size();
     385        i2+=sizeof(long);
     386        foreach( CMember *member, pobj_c->staticMembers ){
     387            lstrcpy(buffer+i2,member->name);
    388388            i2+=lstrlen(buffer+i2)+1;
    389389
    390             memcpy(buffer+i2,pobj_c->ppobj_StaticMember[i4]->SubScripts,sizeof(int)*MAX_ARRAYDIM);
     390            memcpy(buffer+i2,member->SubScripts,sizeof(int)*MAX_ARRAYDIM);
    391391            i2+=sizeof(int)*MAX_ARRAYDIM;
    392392
    393393            //型
    394             *(long *)(buffer+i2)=pobj_c->ppobj_StaticMember[i4]->TypeInfo.type;
     394            *(long *)(buffer+i2)=member->TypeInfo.type;
    395395            i2+=sizeof(long);
    396396
    397397            //型の拡張情報
    398             SetLpIndex_DebugFile(buffer,&i2,pobj_c->ppobj_StaticMember[i4]->TypeInfo.type,pobj_c->ppobj_StaticMember[i4]->TypeInfo.u.lpIndex);
    399 
    400             *(long *)(buffer+i2)=pobj_c->ppobj_StaticMember[i4]->dwAccess;
     398            SetLpIndex_DebugFile(buffer,&i2,member->TypeInfo.type,member->TypeInfo.u.lpIndex);
     399
     400            *(long *)(buffer+i2)=member->dwAccess;
    401401            i2+=sizeof(long);
    402402
     
    772772
    773773        //静的メンバ
    774         pobj_c->iStaticMemberNum=*(long *)(buffer+i2);
    775         i2+=sizeof(long);
    776         pobj_c->ppobj_StaticMember=
    777             (CMember **)HeapAlloc(hHeap,0,pobj_c->iStaticMemberNum*sizeof(CMember *));
    778         for(i4=0;i4<pobj_c->iStaticMemberNum;i4++){
    779             pobj_c->ppobj_StaticMember[i4]=new CMember();
    780 
    781             pobj_c->ppobj_StaticMember[i4]->name=(char *)HeapAlloc(hHeap,0,lstrlen(buffer+i2)+1);
    782             lstrcpy(pobj_c->ppobj_StaticMember[i4]->name,buffer+i2);
     774        int nStaticMember = *(long *)(buffer+i2);
     775        i2+=sizeof(long);
     776        for( i4=0; i4<nStaticMember; i4++ ){
     777            CMember *member=new CMember();
     778
     779            member->name=(char *)HeapAlloc(hHeap,0,lstrlen(buffer+i2)+1);
     780            lstrcpy(member->name,buffer+i2);
    783781            i2+=lstrlen(buffer+i2)+1;
    784782
    785             memcpy(pobj_c->ppobj_StaticMember[i4]->SubScripts,buffer+i2,sizeof(int)*MAX_ARRAYDIM);
     783            memcpy(member->SubScripts,buffer+i2,sizeof(int)*MAX_ARRAYDIM);
    786784            i2+=sizeof(int)*MAX_ARRAYDIM;
    787785
    788786            //型
    789             pobj_c->ppobj_StaticMember[i4]->TypeInfo.type=*(long *)(buffer+i2);
     787            member->TypeInfo.type=*(long *)(buffer+i2);
    790788            i2+=sizeof(long);
    791789
    792790            //型の拡張情報
    793             GetLpIndex_DebugFile(buffer,&i2,pobj_c->ppobj_StaticMember[i4]->TypeInfo.type,&pobj_c->ppobj_StaticMember[i4]->TypeInfo.u.lpIndex);
    794 
    795             pobj_c->ppobj_StaticMember[i4]->dwAccess=*(long *)(buffer+i2);
    796             i2+=sizeof(long);
     791            GetLpIndex_DebugFile(buffer,&i2,member->TypeInfo.type,&member->TypeInfo.u.lpIndex);
     792
     793            member->dwAccess=*(long *)(buffer+i2);
     794            i2+=sizeof(long);
     795
     796            pobj_c->staticMembers.push_back( member );
    797797        }
    798798    }
Note: See TracChangeset for help on using the changeset viewer.