Changeset 89 in dev for BasicCompiler32/Compile_ProcOp.cpp
- Timestamp:
- Apr 4, 2007, 2:03:09 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler32/Compile_ProcOp.cpp
r86 r89 204 204 obp+=31; 205 205 } 206 else if( userProc.GetName() == "InitializeUserTypes" ){ 206 else if( userProc.GetName() == "InitializeUserTypes" 207 && userProc.HasParentClass() 208 && (string)userProc.GetParentClass().name == "_System_TypeBase" ){ 209 210 pobj_DBClass->Compile_System_InitializeUserTypes(); 207 211 } 208 212 else{ … … 243 247 pUserProc->beginOpAddress=obp; 244 248 249 //コンパイル中の関数が属するクラス 250 pobj_CompilingClass=pUserProc->GetParentClassPtr(); 251 252 //コンパイルスタートをクラス管理クラスに追加 253 pobj_DBClass->StartCompile( pUserProc ); 254 255 //コンパイル中の関数 256 UserProc::CompileStartForUserProc( pUserProc ); 257 245 258 if(pUserProc->IsSystem()){ 259 //////////////////// 260 // 特殊関数 261 //////////////////// 262 246 263 extern int AllLocalVarSize; 247 264 AllLocalVarSize=0; … … 313 330 AllLocalVarSize+=sizeof(long); 314 331 315 //コンパイル中の関数が属するクラス316 pobj_CompilingClass=pUserProc->GetParentClassPtr();317 318 //コンパイルスタートをクラス管理クラスに追加319 pobj_DBClass->StartCompile( pUserProc );320 321 //コンパイル中の関数322 UserProc::CompileStartForUserProc( pUserProc );323 324 332 325 333 /////////////////////// … … 358 366 } 359 367 else{ 360 //戻り値用の変数の定義 361 sprintf(temporary,"%s%c%c%s",temp,1,ESC_AS, pUserProc->ReturnType().ToString().c_str() ); 368 if( pUserProc->ReturnType().IsObject() ){ 369 sprintf(temporary,"%s=Nothing%c%c%s",temp,1,ESC_AS, pUserProc->ReturnType().ToString().c_str() ); 370 } 371 else{ 372 //戻り値用の変数の定義 373 sprintf(temporary,"%s%c%c%s",temp,1,ESC_AS, pUserProc->ReturnType().ToString().c_str() ); 374 } 362 375 363 376 OpcodeDim(temporary,0); … … 464 477 RemoveStringPare(temporary); 465 478 466 Opcode_CallProc(temporary, 467 pobj_CompilingClass->pobj_InheritsClass->GetConstructorMethod()->pUserProc, 468 0, 469 "", 470 0); 479 Type dummyType; 480 CallProc( PROC_DEFAULT 481 , pobj_CompilingClass->pobj_InheritsClass->GetConstructorMethod()->pUserProc 482 , pobj_CompilingClass->pobj_InheritsClass->GetConstructorMethod()->pUserProc->GetName().c_str() 483 , temporary 484 , dummyType ); 471 485 } 472 486 else{
Note:
See TracChangeset
for help on using the changeset viewer.