Changeset 89 in dev for BasicCompiler64/Compile_ProcOp.cpp
- Timestamp:
- Apr 4, 2007, 2:03:09 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler64/Compile_ProcOp.cpp
r86 r89 195 195 obp+=31; 196 196 } 197 else if( userProc.GetName() == "InitializeUserTypes" ){ 197 else if( userProc.GetName() == "InitializeUserTypes" 198 && userProc.HasParentClass() 199 && (string)userProc.GetParentClass().name == "_System_TypeBase" ){ 200 201 pobj_DBClass->Compile_System_InitializeUserTypes(); 198 202 } 199 203 else{ … … 233 237 pUserProc->beginOpAddress=obp; 234 238 239 //コンパイル中の関数が属するクラス 240 pobj_CompilingClass=pUserProc->GetParentClassPtr(); 241 242 //コンパイルスタートをクラス管理クラスに追加 243 pobj_DBClass->StartCompile( pUserProc ); 244 245 //コンパイル中の関数 246 UserProc::CompileStartForUserProc( pUserProc ); 247 235 248 if(pUserProc->IsSystem()){ 236 249 //////////////////// … … 351 364 extern int LocalVar_ThisPtrOffset; 352 365 LocalVar_ThisPtrOffset=AllLocalVarSize; 353 354 //コンパイル中の関数が属するクラス355 pobj_CompilingClass=pUserProc->GetParentClassPtr();356 357 //コンパイルスタートをクラス管理クラスに追加358 pobj_DBClass->StartCompile( pUserProc );359 360 //コンパイル中の関数361 UserProc::CompileStartForUserProc( pUserProc );362 366 363 367 //スタックフレーム管理用クラスを初期化 … … 446 450 } 447 451 else{ 448 //戻り値用の変数の定義 449 sprintf(temporary,"%s%c%c%s",temp,1,ESC_AS, pUserProc->ReturnType().ToString().c_str() ); 452 if( pUserProc->ReturnType().IsObject() ){ 453 sprintf(temporary,"%s=Nothing%c%c%s",temp,1,ESC_AS, pUserProc->ReturnType().ToString().c_str() ); 454 } 455 else{ 456 //戻り値用の変数の定義 457 sprintf(temporary,"%s%c%c%s",temp,1,ESC_AS, pUserProc->ReturnType().ToString().c_str() ); 458 } 450 459 451 460 OpcodeDim(temporary,0); … … 520 529 RemoveStringPare(temporary); 521 530 522 Opcode_CallProc(temporary, 523 pobj_CompilingClass->pobj_InheritsClass->GetConstructorMethod()->pUserProc, 524 0, 525 "", 526 0); 531 Type dummyType; 532 CallProc( PROC_DEFAULT 533 , pobj_CompilingClass->pobj_InheritsClass->GetConstructorMethod()->pUserProc 534 , pobj_CompilingClass->pobj_InheritsClass->GetConstructorMethod()->pUserProc->GetName().c_str() 535 , temporary 536 , dummyType ); 527 537 } 528 538 else{
Note:
See TracChangeset
for help on using the changeset viewer.