Changeset 11 in dev for BasicCompiler_Common/Variable.cpp


Ignore:
Timestamp:
Dec 8, 2006, 3:25:27 AM (17 years ago)
Author:
dai_9181
Message:

Const変数の書き込み規制を有効化(グローバル/ローカル変数のみ)
定数オブジェクトと定数メンバは未実装。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler_Common/Variable.cpp

    r7 r11  
    815815}
    816816
     817BOOL GetVarOffsetReadOnly(char *NameBuffer,int *pType,RELATIVE_VAR *pRelativeVar,LONG_PTR *plpIndex,int *pss){
     818    //読み取り専用で変数へアクセス
     819    return GetVarOffset(
     820        true,       //エラー表示有効
     821        false,      //書き込みアクセスは無し
     822        NameBuffer,
     823        pType,
     824        pRelativeVar,
     825        plpIndex,
     826        pss);
     827}
     828BOOL GetVarOffsetReadWrite(char *NameBuffer,int *pType,RELATIVE_VAR *pRelativeVar,LONG_PTR *plpIndex,int *pss){
     829    //読み書き両用で変数へアクセス
     830    return GetVarOffset(
     831        true,       //エラー表示有効
     832        true,       //書き込みアクセス
     833        NameBuffer,
     834        pType,
     835        pRelativeVar,
     836        plpIndex,
     837        pss);
     838}
     839
    817840
    818841
     
    10171040
    10181041    lstrcpy(pVar->name,name);
    1019     if(dwFlag & DIMFLAG_CONST) pVar->bConst = 1;
    1020     else pVar->bConst = 0;
     1042    if(dwFlag & DIMFLAG_CONST) pVar->bConst = true;
     1043    else pVar->bConst = false;
    10211044    if(SubScripts[0]==-1) pVar->bArray=0;
    10221045    else pVar->bArray=1;
     
    10541077        AllInitGlobalVarSize);
    10551078    if(InitBuf[0]){
     1079        //初期代入時のみ、書き込みアクセスを許可する
     1080        bool bConstBack = pVar->bConst;
     1081        pVar->bConst = false;
     1082
    10561083        int result = SetInitGlobalData(pVar->offset,
    10571084            pVar->type,
     
    10661093            OpcodeCalc(temporary);
    10671094        }
     1095
     1096        pVar->bConst = bConstBack;
    10681097    }
    10691098
Note: See TracChangeset for help on using the changeset viewer.