Changeset 370 in dev for trunk/abdev/BasicCompiler32/Compile_CallProc.cpp
- Timestamp:
- Nov 15, 2007, 3:18:41 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler32/Compile_CallProc.cpp
r350 r370 326 326 if( pobj_c->IsInterface() ) 327 327 { 328 // インターフェイス メソッド呼び出し328 // インターフェイス メソッド呼び出し 329 329 330 330 int offset_vtbl = compiler.GetObjectModule().meta.GetClasses().GetInterfaceInfoClassPtr()->GetMemberOffset( "__vtbl" ); … … 349 349 SetError(); 350 350 } 351 } 352 else if( pobj_c->IsComInterface() ) 353 { 354 // COMインターフェイス メソッド呼び出し 355 356 //仮想関数(オブジェクトメソッド)呼び出し 357 // pObj -> vtbl1 -> func1 358 // -> func2 359 // -> func3 360 361 int vtblMasterListIndex; 362 pobj_c->GetVtblMasterListIndexAndVtblIndex( pUserProc, vtblMasterListIndex, vtblIndex ); 363 364 // vtblのポインタを取得 365 //mov edx,dword ptr[ecx] 366 compiler.codeGenerator.op_mov_RM( sizeof(long), REG_EDX, REG_ECX, 0, MOD_BASE ); 351 367 } 352 368 else … … 364 380 365 381 // vtblマスターリストのポインタを取得 366 //mov edx,dword ptr[ecx ]367 compiler.codeGenerator.op_mov_RM( sizeof(long), REG_EDX, REG_ECX, 0, MOD_BASE);382 //mov edx,dword ptr[ecx+sizeof(com_vtbl)] 383 compiler.codeGenerator.op_mov_RM( sizeof(long), REG_EDX, REG_ECX, PTR_SIZE, MOD_BASE_DISP8 ); 368 384 369 385 // vtblのポインタを取得
Note:
See TracChangeset
for help on using the changeset viewer.