Ignore:
Timestamp:
Oct 14, 2007, 9:41:03 PM (17 years ago)
Author:
dai_9181
Message:

インターフェイスを実装

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler64/OperatorProc.cpp

    r345 r350  
    3333}
    3434
    35 int CallOperatorProc(BYTE idCalc, const Type &baseType, int *type_stack,LONG_PTR *index_stack,BOOL *bUseHeap,int &sp){
     35int CallOperatorProc(BYTE idCalc, const Type &baseType, int *type_stack,LONG_PTR *index_stack,BOOL *bUseHeap,int &sp)
     36{
     37    Type leftType( type_stack[sp-2], index_stack[sp-2] );
     38    Type rightType( type_stack[sp-1] & (~FLAG_CAST), index_stack[sp-1] );
     39
    3640    //オーバーロードされたオペレータ関数を呼び出す
    37     CClass *pobj_c;
    38     pobj_c=(CClass *)index_stack[sp-2];
     41    const CClass *pobj_c = &leftType.GetClass();
    3942
    4043    std::vector<const UserProc *> subs;
     
    5659    Parameters params;
    5760
    58     if(bTwoTerm){
    59         params.push_back( new Parameter( "", Type( type_stack[sp-1], index_stack[sp-1] ) ) );
     61    if(bTwoTerm)
     62    {
     63        params.push_back( new Parameter( "", rightType ) );
    6064    }
    6165
     
    9498    }
    9599
    96     int right_side_size = Type(type_stack[sp-1],index_stack[sp-1]).GetSize();
     100    int right_side_size = rightType.GetSize();
    97101
    98102    if(bTwoTerm){
Note: See TracChangeset for help on using the changeset viewer.