Changeset 73 in dev for BasicCompiler64/OperatorProc.cpp
- Timestamp:
- Mar 16, 2007, 11:07:14 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler64/OperatorProc.cpp
r64 r73 23 23 24 24 //call free 25 extern S UBINFO*pSub_free;25 extern SubInfo *pSub_free; 26 26 op_call(pSub_free); 27 27 } … … 32 32 pobj_c=(CClass *)index_stack[sp-2]; 33 33 34 std::vector<S UBINFO*> subs;34 std::vector<SubInfo *> subs; 35 35 pobj_c->EnumMethod( idCalc, subs ); 36 36 if( subs.size() == 0 ){ … … 84 84 if(idCalc==CALC_EQUAL) lstrcpy(temporary,"=="); 85 85 else GetCalcName(idCalc,temporary); 86 S UBINFO*psi;86 SubInfo *psi; 87 87 psi=OverloadSolution(temporary,subs,ppi,iParmNum,pBaseTypeInfo); 88 88 … … 94 94 else{ 95 95 //オーバーロードされていないが、パラメータ個数が一致しないとき 96 if(iParmNum!=psi-> ParmNum){96 if(iParmNum!=psi->params.size()){ 97 97 HeapDefaultFree(ppi); 98 98 return -1; … … 102 102 for(i=0;i<iParmNum;i++){ 103 103 CheckDifferentType( 104 psi->p ParmInfo[i].type,105 psi->p ParmInfo[i].u.index,104 psi->params[i]->GetBasicType(), 105 psi->params[i]->GetIndex(), 106 106 ppi[i].type, 107 107 ppi[i].u.index, … … 113 113 114 114 if(bTwoTerm){ 115 if( psi->pRealParmInfo[1].type==DEF_STRUCT&&psi->pRealParmInfo[1].bByVal){115 if( psi->realParams[1]->IsStruct() && psi->realParams[1]->IsRef() == false ){ 116 116 //一時オブジェクトはメソッド内で破棄される 117 117 bUseHeap[sp-1]=0; … … 137 137 138 138 //call calloc 139 extern S UBINFO*pSub_calloc;139 extern SubInfo *pSub_calloc; 140 140 op_call(pSub_calloc); 141 141 … … 154 154 SetOneTermToReg_Whole64Calc(type[sp-1],®2); 155 155 pobj_reg->UnlockReg(); 156 if( !psi-> pRealParmInfo[1].bByVal){156 if( !psi->realParams[1]->IsRef() == false ){ 157 157 //一時参照を作成 158 158 pobj_sf->push( reg2 ); … … 253 253 254 254 if(bTwoTerm){ 255 if( !psi-> pRealParmInfo[1].bByVal){255 if( !psi->realParams[1]->IsRef() == false ){ 256 256 //一時参照を破棄 257 257 pobj_sf->pop(); … … 341 341 void CallIndexerGetterProc(int reg,CClass *pobj_Class,char *ObjectName,char *Parameter,TYPEINFO &RetTypeInfo){ 342 342 343 std::vector<S UBINFO*> subs;343 std::vector<SubInfo *> subs; 344 344 pobj_Class->EnumMethod( CALC_ARRAY_GET, subs ); 345 345 if( subs.size() == 0 ){
Note:
See TracChangeset
for help on using the changeset viewer.