Changeset 47 in dev for BasicCompiler64
- Timestamp:
- Feb 10, 2007, 3:12:04 AM (18 years ago)
- Location:
- BasicCompiler64
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler64/CParameter.cpp
r46 r47 94 94 if(Parms[i]){ 95 95 TYPEINFO BaseType={ppi[i].type,ppi[i].u.index}; 96 if(Parms[i][0]==1&&Parms[i][1]==ESC_BYVAL){ 97 type=NumOpe_GetType(Parms[i]+2,&BaseType,&lpIndex); 98 type=MAKE_PTR_TYPE(NATURAL_TYPE(type),PTR_LEVEL(type)-1); 99 } 100 else{ 101 type=NumOpe_GetType(Parms[i],&BaseType,&lpIndex); 102 } 96 type=NumOpe_GetType(Parms[i],&BaseType,&lpIndex); 103 97 } 104 98 else{ -
BasicCompiler64/Compile_CallProc.cpp
r46 r47 246 246 psi->bUse=1; 247 247 248 BOOL bStatic=0;248 bool isStatic = false; 249 249 CClass *pobj_c = NULL; 250 250 CMethod *pMethod = NULL; … … 257 257 } 258 258 else{ 259 pobj_c=pobj_DBClass->check(ObjectName); 260 if(pobj_c){ 261 //静的メンバ 262 bStatic=1; 263 } 264 else{ 265 //"->"によってオブジェクトを指定する通常のメンバ関数呼び出し 266 GetVarType(ObjectName,(LONG_PTR *)&pobj_c,1); 259 //"->"によってオブジェクトを指定する通常のメンバ関数呼び出し 260 int type = GetVarType(ObjectName,(LONG_PTR *)&pobj_c,0); 261 if(!(NATURAL_TYPE(type)==DEF_OBJECT)){ 262 pobj_c=pobj_DBClass->check(ObjectName); 263 if( pobj_c ){ 264 isStatic = true; 265 } 266 else{ 267 SetError(300,NULL,cp); 268 } 267 269 } 268 270 } … … 284 286 ///////////////////////////////// 285 287 pMethod = NULL; 286 if( ! bStatic ) pMethod = pobj_c->GetMethodInfo( psi );288 if( ! isStatic ) pMethod = pobj_c->GetMethodInfo( psi ); 287 289 if( ! pMethod ){ 288 290 //動的メソッドが取得できなかったときは静的メソッドを当たる … … 294 296 295 297 //静的メンバ 296 bStatic=1;298 isStatic = true; 297 299 } 298 300 … … 339 341 340 342 char temporary[VN_SIZE]={0}; 341 if( psi->pobj_ParentClass&&bStatic==0){343 if( psi->pobj_ParentClass && isStatic == false ){ 342 344 //_System_LocalThis(第一パラメータ)のダミーを作成 343 345 lstrcpy(temporary,"0,"); … … 413 415 }//////////////////////////////////////////// 414 416 415 if( psi->pobj_ParentClass&&bStatic==0){417 if( psi->pobj_ParentClass && isStatic == false ){ 416 418 //mov rdx,r13 417 419 op_mov_RR(REG_RDX,REG_R13); … … 424 426 425 427 426 if( psi->pobj_ParentClass&&bStatic==0){428 if( psi->pobj_ParentClass && isStatic == false ){ 427 429 /////////////////////////////// 428 430 // メンバ関数の場合 -
BasicCompiler64/Compile_Statement.cpp
r40 r47 71 71 } 72 72 73 if(lstrcmp(buffer,"EnumX.EnumX")==0){ 74 MessageBeep(0); 75 } 73 76 74 77 int idProc;
Note:
See TracChangeset
for help on using the changeset viewer.