Changeset 335 in dev


Ignore:
Timestamp:
Sep 28, 2007, 3:27:35 AM (16 years ago)
Author:
dai_9181
Message:
 
Location:
trunk/abdev
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler32/Compile_Func.cpp

    r334 r335  
    296296    userProc.Using();
    297297}
    298 void Opcode_CreateSimpleDelegate( const CClass &dgClass, const char *methodInstanceName, const UserProc &userProc )
     298void Opcode_CreateDelegate( const CClass &dgClass, const char *methodInstanceName, const UserProc &userProc )
    299299{
    300300    /////////////////////////////////////////////////////////////////
     
    401401        {
    402402            // デリゲートのとき
    403             Opcode_CreateSimpleDelegate( baseType.GetClass(), name, *pUserProc );
     403            Opcode_CreateDelegate( baseType.GetClass(), name, *pUserProc );
    404404        }
    405405        resultType = baseType;
  • trunk/abdev/BasicCompiler_Common/src/Delegate.cpp

    r327 r335  
    188188        destSource += sourceTemplate.GetResult( values );
    189189    }
     190/*
     191    ofstream ofs( ( Jenga::Common::Environment::GetAppDir() + "\\generated_delegate_code.log" ).c_str() );
     192    ofs << destSource;
     193    ofs.close();
     194    */
    190195}
  • trunk/abdev/BasicCompiler_Common/src/Type.cpp

    r332 r335  
    512512        if( pUserProc )
    513513        {
    514             // 基底クラスでの自己解決
    515             const CClass *pClass = &classType.GetClass();
    516             while( pClass->HasSuperClass() )
     514            if( classType.IsObject() )
    517515            {
    518                 if( pUserProc->GetParentClassPtr() == &pClass->GetSuperClass() )
     516                // 基底クラスでの自己解決
     517                const CClass *pClass = &classType.GetClass();
     518                while( pClass->HasSuperClass() )
    519519                {
    520                     if( pClass->GetSuperClassActualTypeParameters().size() )
     520                    if( pUserProc->GetParentClassPtr() == &pClass->GetSuperClass() )
    521521                    {
    522                         // TODO: 適切な形に実装し直す(暫定的にトップの型を持ってきている)
    523                         typeParameter = pClass->GetSuperClassActualTypeParameters()[0];
     522                        if( pClass->GetSuperClassActualTypeParameters().size() )
     523                        {
     524                            // TODO: 適切な形に実装し直す(暫定的にトップの型を持ってきている)
     525                            typeParameter = pClass->GetSuperClassActualTypeParameters()[0];
     526                        }
    524527                    }
     528                    pClass = &pClass->GetSuperClass();
    525529                }
    526                 pClass = &pClass->GetSuperClass();
    527530            }
    528531        }
Note: See TracChangeset for help on using the changeset viewer.