Ignore:
Timestamp:
Jul 30, 2007, 4:12:54 PM (17 years ago)
Author:
dai_9181
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler_Common/Compile.cpp

    r250 r253  
    8888    extern LINEINFO *pLineInfo;
    8989    if(MaxLineInfoNum){
     90        extern int obp;
    9091        if(pLineInfo[MaxLineInfoNum-1].TopObp==obp){
    9192            pLineInfo[MaxLineInfoNum-1].TopCp=cp;
     
    9596    pLineInfo=(LINEINFO *)HeapReAlloc(hHeap,0,pLineInfo,(MaxLineInfoNum+1)*sizeof(LINEINFO));
    9697    pLineInfo[MaxLineInfoNum].TopCp=cp;
     98    extern int obp;
    9799    pLineInfo[MaxLineInfoNum].TopObp=obp;
    98100
     
    123125        pLabelNames[MaxLabelNum].pName=(char *)HeapAlloc(hHeap,0,lstrlen(Command+1)+1);
    124126        lstrcpy(pLabelNames[MaxLabelNum].pName,Command+1);
     127        extern int obp;
    125128        pLabelNames[MaxLabelNum].address=obp;
    126129        MaxLabelNum++;
    127130
    128131        //書き込みスケジュール
    129         std::vector<GotoLabelSchedule>::iterator it = compiler.codeGenerator.gotoLabelSchedules.begin();
     132        GotoLabelSchedules::iterator it = compiler.codeGenerator.gotoLabelSchedules.begin();
    130133        while( it != compiler.codeGenerator.gotoLabelSchedules.end() )
    131134        {
    132             if( it->GetName() == Command+1 )
     135            if( (*it)->GetName() == Command+1 )
    133136            {
    134                 *((long *)( OpBuffer + it->GetNativeCodePos() ))=obp-(it->GetNativeCodePos()+sizeof(long));
     137                compiler.codeGenerator.opfix_JmpPertialSchedule( (*it) );
    135138               
    136139                //詰める
     
    335338            extern BOOL bDebugCompile;
    336339            //int 3
    337             if(bDebugCompile) OpBuffer[obp++]=(char)0xCC;
     340            if(bDebugCompile)
     341            {
     342                breakpoint;
     343            }
    338344#if defined(_DEBUG)
    339             else OpBuffer[obp++]=(char)0xCC;
     345            else
     346            {
     347                breakpoint;
     348            }
    340349#endif
    341350            break;
     
    532541                pLabelNames[MaxLabelNum].pName=0;
    533542                pLabelNames[MaxLabelNum].line=i3;
     543                extern int obp;
    534544                pLabelNames[MaxLabelNum].address=obp;
    535545                MaxLabelNum++;
    536546
    537547                //書き込みスケジュール
    538                 std::vector<GotoLabelSchedule>::iterator it = compiler.codeGenerator.gotoLabelSchedules.begin();
     548                GotoLabelSchedules::iterator it = compiler.codeGenerator.gotoLabelSchedules.begin();
    539549                while( it != compiler.codeGenerator.gotoLabelSchedules.end() )
    540550                {
    541                     if( it->GetName().size() == 0 && it->GetLineNum() == i3 )
     551                    if( (*it)->GetName().size() == 0 && (*it)->GetLineNum() == i3 )
    542552                    {
    543                         *((long *)( OpBuffer + it->GetNativeCodePos() ))=obp-(it->GetNativeCodePos()+sizeof(long));
    544                        
     553                        compiler.codeGenerator.opfix_JmpPertialSchedule( (*it) );
     554
    545555                        //詰める
    546556                        it = compiler.codeGenerator.gotoLabelSchedules.erase( it );
Note: See TracChangeset for help on using the changeset viewer.