Ignore:
Timestamp:
Feb 10, 2007, 3:12:04 AM (18 years ago)
Author:
dai_9181
Message:

列挙子の比較演算が正常に行えないバグを修正。
クラス名と同名のグローバル関数を定義できないバグを修正

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler32/Compile_CallProc.cpp

    r46 r47  
    243243    psi->bUse=1;
    244244
    245     BOOL bStatic=0;
     245    bool isStatic = false;
    246246    CClass *pobj_c = NULL;
    247247    CMethod *pMethod = NULL;
     
    254254            }
    255255            else{
    256                 pobj_c=pobj_DBClass->check(ObjectName);
    257                 if(pobj_c){
    258                     //静的メンバ
    259                     bStatic=1;
    260                 }
    261                 else{
    262                     //"->"によってオブジェクトを指定する通常のメンバ関数呼び出し
    263                     GetVarType(ObjectName,(LONG_PTR *)&pobj_c,1);
     256                //"->"によってオブジェクトを指定する通常のメンバ関数呼び出し
     257                int type = GetVarType(ObjectName,(LONG_PTR *)&pobj_c,0);
     258                if(!(NATURAL_TYPE(type)==DEF_OBJECT)){
     259                    pobj_c=pobj_DBClass->check(ObjectName);
     260                    if( pobj_c ){
     261                        isStatic = true;
     262                    }
     263                    else{
     264                        SetError(300,NULL,cp);
     265                    }
    264266                }
    265267            }
     
    281283        /////////////////////////////////
    282284        pMethod = NULL;
    283         if( ! bStatic ) pMethod = pobj_c->GetMethodInfo( psi );
     285        if( ! isStatic ) pMethod = pobj_c->GetMethodInfo( psi );
    284286        if( ! pMethod ){
    285287            //動的メソッドが取得できなかったときは静的メソッドを当たる
     
    291293
    292294            //静的メンバ
    293             bStatic=1;
     295            isStatic = true;
    294296        }
    295297
     
    337339
    338340    char temporary[VN_SIZE]={0};
    339     if(psi->pobj_ParentClass&&bStatic==0){
     341    if( psi->pobj_ParentClass && isStatic == false ){
    340342        //_System_LocalThis(第一パラメータ)のダミーを作成
    341343        lstrcpy(temporary,"0,");
     
    401403
    402404
    403     if(psi->pobj_ParentClass&&bStatic==0){
     405    if( psi->pobj_ParentClass && isStatic == false ){
    404406        //////////////////////////////////////////////////////
    405407        // メンバ関数の場合
Note: See TracChangeset for help on using the changeset viewer.