Changeset 73 in dev for BasicCompiler32/OperatorProc.cpp
- Timestamp:
- Mar 16, 2007, 11:07:14 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler32/OperatorProc.cpp
r67 r73 18 18 19 19 //call free 20 extern S UBINFO*pSub_free;20 extern SubInfo *pSub_free; 21 21 op_call(pSub_free); 22 22 } … … 27 27 pobj_c=(CClass *)index_stack[sp-2]; 28 28 29 std::vector<S UBINFO*> subs;29 std::vector<SubInfo *> subs; 30 30 pobj_c->EnumMethod( idCalc, subs ); 31 31 if( subs.size() == 0 ){ … … 42 42 BOOL bReturnTypeIsObject=1; 43 43 TYPEINFO ReturnType={DEF_OBJECT,subs[0]->u.ReturnIndex}; 44 foreach( S UBINFO*psi, subs ){44 foreach( SubInfo *psi, subs ){ 45 45 if(psi->ReturnType!=DEF_OBJECT) 46 46 bReturnTypeIsObject=0; … … 79 79 if(idCalc==CALC_EQUAL) lstrcpy(temporary,"=="); 80 80 else GetCalcName(idCalc,temporary); 81 S UBINFO*psi;81 SubInfo *psi; 82 82 psi=OverloadSolution(temporary,subs,ppi,iParmNum,pBaseTypeInfo); 83 83 … … 88 88 else{ 89 89 //オーバーロードされていないが、パラメータ個数が一致しないとき 90 if(iParmNum!=psi-> ParmNum){90 if(iParmNum!=psi->params.size()){ 91 91 HeapDefaultFree(ppi); 92 92 return -1; … … 96 96 for(i=0;i<iParmNum;i++){ 97 97 CheckDifferentType( 98 psi->p ParmInfo[i].type,99 psi->p ParmInfo[i].u.index,98 psi->params[i]->GetBasicType(), 99 psi->params[i]->GetIndex(), 100 100 ppi[i].type, 101 101 ppi[i].u.index, … … 109 109 110 110 if(bTwoTerm){ 111 if( psi->pRealParmInfo[1].type==DEF_STRUCT&&psi->pRealParmInfo[1].bByVal){111 if( psi->realParams[1]->IsStruct() &&psi->realParams[1]->IsRef() == false ){ 112 112 //一時オブジェクトはメソッド内で破棄される 113 113 bUseHeap[sp-1]=0; … … 128 128 129 129 //call calloc 130 extern S UBINFO*pSub_calloc;130 extern SubInfo *pSub_calloc; 131 131 op_call(pSub_calloc); 132 132 … … 180 180 } 181 181 182 if( !psi->pRealParmInfo[1].bByVal){182 if( psi->realParams[1]->IsRef() ){ 183 183 //一時参照を作成 184 184 … … 203 203 204 204 if(bTwoTerm){ 205 if( !psi->pRealParmInfo[1].bByVal){205 if( psi->realParams[1]->IsRef() ){ 206 206 //一時参照を破棄 207 207 op_pop( REG_NON ); … … 273 273 } 274 274 void CallIndexerGetterProc(CClass *pobj_Class,char *ObjectName,char *Parameter,TYPEINFO &RetTypeInfo){ 275 std::vector<S UBINFO*> subs;275 std::vector<SubInfo *> subs; 276 276 pobj_Class->EnumMethod( CALC_ARRAY_GET, subs ); 277 277 if( subs.size() == 0 ){
Note:
See TracChangeset
for help on using the changeset viewer.