Ignore:
Timestamp:
Oct 3, 2007, 3:42:05 AM (17 years ago)
Author:
dai_9181
Message:

64ビットコンパイラもデリゲートに対応させた

File:
1 edited

Legend:

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

    r332 r339  
    438438
    439439    char temporary[VN_SIZE]={0};
     440    bool isDynamicCall = false;
    440441    if( objPtrValueStr && objPtrValueStr[0] ){
    441442        //_System_LocalThis(第一パラメータ)のダミーを作成
    442443        lstrcpy(temporary,"0,");
     444
     445        isDynamicCall = true;
    443446    }
    444447    if( dg.ReturnType().IsStruct() ){
     
    452455
    453456
    454     ParamImpl *pobj_parameter = new ParamImpl( params );
     457    const Parameters *pParams = &dg.Params();
     458    if( isDynamicCall )
     459    {
     460        pParams = &dg.GetDynamicParams();
     461    }
     462
     463
     464    ParamImpl *pobj_parameter = new ParamImpl( temporary );
    455465
    456466    //一時オブジェクトを生成
    457     pobj_parameter->NewTempParameters( dg.GetName(), dg.Params() );
     467    pobj_parameter->NewTempParameters( dg.GetName(), *pParams );
    458468
    459469    //レジスタ、スタックフレームにセット
    460     int ParmSize = pobj_parameter->SetParameter( dg.GetName(), dg.Params() );
     470    int ParmSize = pobj_parameter->SetParameter( dg.GetName(), *pParams );
    461471
    462472
Note: See TracChangeset for help on using the changeset viewer.