Changeset 128 in dev for BasicCompiler32/Compile_Calc.cpp


Ignore:
Timestamp:
May 18, 2007, 4:42:36 AM (17 years ago)
Author:
dai_9181
Message:

Blittable型を導入した。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler32/Compile_Calc.cpp

    r116 r128  
    619619
    620620
     621    if( varType.IsObject() && Smoothie::Meta::blittableTypes.IsExist( calcType ) ){
     622        // Blittable型をオブジェクトとして扱う
     623        vector<UserProc *> userProcs;
     624        Smoothie::Meta::blittableTypes.GetClass( calcType ).EnumStaticMethod( "_Create", userProcs );
     625        if( userProcs.size() != 1 ){
     626            SetError();
     627            return;
     628        }
     629        UserProc *pUserProc = userProcs[0];
     630
     631        // call System.[TypeClass]._Create
     632        op_call( pUserProc );
     633
     634        // push eax
     635        op_push( REG_EAX );
     636
     637        calcType = pUserProc->ReturnType();
     638    }
     639
    621640
    622641    /////////////////////////////////
Note: See TracChangeset for help on using the changeset viewer.