Changeset 75 in dev for BasicCompiler32/Compile_Func.cpp
- Timestamp:
- Mar 20, 2007, 4:36:16 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler32/Compile_Func.cpp
r73 r75 207 207 } 208 208 209 T YPEINFOTypeInfo={type,lpIndex};209 Type TypeInfo={type,lpIndex}; 210 210 if(IsStringObjectType(TypeInfo)){ 211 211 //Stringオブジェクトの場合 … … 243 243 void Opcode_Func_AddressOf(const char *name){ 244 244 extern int cp; 245 SubInfo *psi;245 UserProc *pUserProc; 246 246 247 247 extern LONG_PTR ProcPtr_BaseIndex; … … 249 249 //左辺の型にのっとり、オーバーロードを解決 250 250 251 std::vector< SubInfo*> subs;251 std::vector<UserProc *> subs; 252 252 GetOverloadSubHash( name, subs ); 253 253 if( subs.size() == 0 ){ … … 257 257 258 258 //オーバーロードを解決 259 extern P ROCPTRINFO *pProcPtrInfo;260 p si=OverloadSolution(name,subs,pProcPtrInfo[ProcPtr_BaseIndex].pParmInfo,pProcPtrInfo[ProcPtr_BaseIndex].ParmNum,NULL);261 262 if(!p si){259 extern ProcPointer **ppProcPtrInfo; 260 pUserProc=OverloadSolution(name,subs,ppProcPtrInfo[ProcPtr_BaseIndex]->Params(), Type() ); 261 262 if(!pUserProc){ 263 263 SetError(27,name,cp); 264 264 return; … … 266 266 } 267 267 else{ 268 p si=GetSubHash(name);269 if(!p si){268 pUserProc=GetSubHash(name); 269 if(!pUserProc){ 270 270 SetError(27,name,cp); 271 271 return; … … 273 273 } 274 274 275 276 if(psi->bVirtual){ 275 if( pUserProc->IsVirtual() ){ 277 276 /////////////////////////////// 278 277 // 仮想関数の場合 … … 324 323 OpBuffer[obp++]=(char)0x11; 325 324 326 int i2 = pobj_c->GetFuncNumInVtbl( p si);325 int i2 = pobj_c->GetFuncNumInVtbl( pUserProc ); 327 326 328 327 //mov eax,dword ptr[edx+func_index] … … 339 338 //mov eax,ProcAddr 340 339 OpBuffer[obp++]=(char)0xB8; 341 pobj_SubAddrSchedule->add(p si,0);340 pobj_SubAddrSchedule->add(pUserProc,0); 342 341 obp+=sizeof(long); 343 342 } 344 343 345 p si->bUse=1;344 pUserProc->Using(); 346 345 } 347 346 void Opcode_Func_SizeOf(const char *Parameter){ … … 361 360 op_mov_RV( REG_EAX, size ); 362 361 } 363 void Opcode_Func_VarPtr( const char *Parameter, T YPEINFO&ReturnTypeInfo ){362 void Opcode_Func_VarPtr( const char *Parameter, Type &ReturnTypeInfo ){ 364 363 RELATIVE_VAR RelativeVar; 365 364 … … 439 438 } 440 439 441 void Opcode_CallFunc( const char *Parameter, const int FuncNum, T YPEINFO&ReturnTypeInfo ){440 void Opcode_CallFunc( const char *Parameter, const int FuncNum, Type &ReturnTypeInfo ){ 442 441 switch(FuncNum){ 443 442 case FUNC_FIX:
Note:
See TracChangeset
for help on using the changeset viewer.