Changeset 28 in dev for BasicCompiler32/CParameter.cpp


Ignore:
Timestamp:
Jan 8, 2007, 6:34:44 AM (17 years ago)
Author:
dai_9181
Message:

・【32ビットコンパイラ】戻り値に実態オブジェクトを持つインデクサを呼び出すと強制終了してしまうバグを修正。
・仮想関数のオーバーロードが正常に動作しないバグを修正。
・純仮想関数(抽象メソッド)が仮想関数でオーバーロードされていると、クラスのインスタンスが生成できてしまうバグを修正。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler32/CParameter.cpp

    r20 r28  
    215215    SUBINFO *psi;
    216216    psi=0;
     217    if(lstrcmp(name,"Abs")==0){
     218        MessageBeep(0);
     219    }
    217220    for(i=0;i<num;i++){
    218221        psi=ppsi[i];
     
    550553    }
    551554
     555    //戻り値用の変数名を取得
     556    char *lpszVarNameToReturn;
     557    if(FuncName[0]==1&&FuncName[1]==ESC_OPERATOR) lpszVarNameToReturn="_System_ReturnValue";
     558    else lpszVarNameToReturn=FuncName;
     559
    552560    //パラメータをレジスタとスタックに格納
    553561    int CalcType;
     
    567575        }
    568576        if((i2==0||i2==1)&&ppi[i2].name){
    569             if(lstrcmp(ppi[i2].name,FuncName)==0){
     577            if(lstrcmp(ppi[i2].name,lpszVarNameToReturn)==0){
    570578                //オブジェクトメンバの第一または第二パラメータの戻り値用オブジェクト
    571579                continue;
Note: See TracChangeset for help on using the changeset viewer.