Changeset 370 in dev for trunk/abdev/BasicCompiler_Common/include
- Timestamp:
- Nov 15, 2007, 3:18:41 AM (17 years ago)
- Location:
- trunk/abdev/BasicCompiler_Common/include
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler_Common/include/Class.h
r369 r370 122 122 Class, 123 123 Interface, 124 ComInterface, 124 125 Enum, 125 126 Delegate, … … 204 205 , vtblNum( 0 ) 205 206 , vtbl_offset( -1 ) 207 , comVtblOffset( 0 ) 206 208 , isCompilingConstructor( false ) 207 209 , isCompilingDestructor( false ) … … 221 223 , vtblNum( 0 ) 222 224 , vtbl_offset( -1 ) 225 , comVtblOffset( 0 ) 223 226 , isCompilingConstructor( false ) 224 227 , isCompilingDestructor( false ) … … 339 342 bool IsClass() const; 340 343 bool IsInterface() const; 344 bool IsComInterface() const; 341 345 bool IsEnum() const; 342 346 bool IsDelegate() const; … … 516 520 private: 517 521 long vtbl_offset; 522 long comVtblOffset; 518 523 long vtblMasterListOffset; 519 524 std::vector<long> vtblMasterList; … … 521 526 void GetVtblMasterListIndexAndVtblIndex( const UserProc *pUserProc, int &vtblMasterListIndex, int &vtblIndex ) const; 522 527 int GetVtblMasterListIndex( const CClass *pClass ) const; 528 long GetComVtblOffset() const; 523 529 long GetVtblMasterListOffset() const; 524 530 void GenerateVTableMasterList( const std::vector<long> &vtableMasterList, long &offset ); -
trunk/abdev/BasicCompiler_Common/include/CodeGenerator.h
r364 r370 374 374 void op_ret(); 375 375 void op_addressof( int reg, const UserProc *pUserProc ); 376 void op_mov_RV_com_vtbl( int reg, const CClass *pClass ); 376 377 void op_mov_RV_vtbl( int reg, const CClass *pClass ); 377 378 … … 455 456 void op_ret( short stackFrameSize ); 456 457 void op_addressof( int reg, const UserProc *pUserProc ); 458 void op_mov_RV_com_vtbl( int reg, const CClass *pClass ); 457 459 void op_mov_RV_vtbl( int reg, const CClass *pClass ); 458 460 #endif -
trunk/abdev/BasicCompiler_Common/include/NativeCode.h
r357 r370 24 24 AddressOf, // ユーザ定義関数位置スケジュール 25 25 DllProc, // DLL関数位置スケジュール 26 ComVtbl, // com_vtblスケジュール 26 27 Vtbl, // vtblスケジュール 27 28 TypeInfo, // TypeInfoスケジュール … … 59 60 ar & boost::serialization::make_nvp("pDllProc", const_cast<::DllProc *&>(pDllProc)); 60 61 break; 62 case ComVtbl: 61 63 case Vtbl: 62 64 case TypeInfo: … … 91 93 { 92 94 } 93 Schedule( const ::CClass *pClass, long offset )94 : type( Schedule::Vtbl )95 , offset( offset )96 , pClass( pClass )97 {98 }99 95 Schedule( Type type, const ::CClass *pClass, long offset ) 100 96 : type( type ) … … 102 98 , offset( offset ) 103 99 { 100 if( !( type == Schedule::ComVtbl || type == Schedule::Vtbl || type == Schedule::TypeInfo ) ) 101 { 102 DebugBreak(); 103 } 104 104 } 105 105 ~Schedule() … … 137 137 const ::CClass &GetClass() const 138 138 { 139 if( !( type == Schedule:: Vtbl || type == Schedule::TypeInfo ) )139 if( !( type == Schedule::ComVtbl || type == Schedule::Vtbl || type == Schedule::TypeInfo ) ) 140 140 { 141 141 SetError(); … … 293 293 void PutCatchAddressSchedule( const UserProc *pUserProc, long codePos ); 294 294 void PutDllProcSchedule( const DllProc *pDllProc ); 295 void PutComVtblSchedule( const CClass *pClass ); 295 296 void PutVtblSchedule( const CClass *pClass ); 296 297 -
trunk/abdev/BasicCompiler_Common/include/Type.h
r350 r370 190 190 bool IsDelegate() const; 191 191 bool IsInterface() const; 192 bool IsComInterface() const; 192 193 193 194 // オブジェクトや構造体など、メンバを持つ型かどうかを判別する
Note:
See TracChangeset
for help on using the changeset viewer.