Changeset 28 in dev for BasicCompiler_Common/Overload.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
  • BasicCompiler_Common/Overload.cpp

    r5 r28  
    2020    CParameter *pobj_parameter=0;
    2121
    22     BOOL bStatic=0;
    23     if(ObjectName[0]){
    24         if(pobj_DBClass->check(ObjectName)) bStatic=1;
     22    char MethodName[VN_SIZE];
     23    if( !SplitMemberName( name, NULL, MethodName ) ) lstrcpy( MethodName, name );
     24
     25    //メソッドの場合は静的かどうかを調べる
     26    bool isStatic = false;
     27    CClass *pClass = ppsi[0]->pobj_ParentClass;
     28    if( pClass ){
     29        isStatic = pClass->IsExistStaticMethod( MethodName );
    2530    }
    2631
    2732    char temporary[VN_SIZE];
    28     if((ObjectName[0]||ppsi[0]->pobj_ParentClass)&&bStatic==0){
     33    if((ObjectName[0]||ppsi[0]->pobj_ParentClass) && isStatic == false ){
    2934        //Thisポインタ(第一パラメータ)のダミーを作成
    3035        if(Parameter[0]) sprintf(temporary,"0%c%cVoidPtr,%s",1,ESC_AS,Parameter);
Note: See TracChangeset for help on using the changeset viewer.