Ignore:
Timestamp:
May 5, 2008, 12:26:44 PM (17 years ago)
Author:
dai_9181
Message:

VtblGeneratorクラスを追加。Classes/CClassクラスのvtbl生成関連の実装をVtblGeneratorクラスに移動した。

Location:
trunk/ab5.0/abdev/BasicCompiler_Common/include
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/BasicCompiler_Common/include/Class.h

    r558 r559  
    437437    long comVtblOffset;
    438438    long vtblMasterListOffset;
     439public:
    439440    std::vector<long> vtblMasterList;
    440 public:
     441    LONG_PTR GetVtblOffset() const
     442    {
     443        return vtbl_offset;
     444    }
     445    void SetVtblOffset( int vtblOffset )
     446    {
     447        this->vtbl_offset = vtblOffset;
     448    }
     449    long GetComVtblOffset() const
     450    {
     451        return comVtblOffset;
     452    }
     453    void SetComVtblOffset( int comVtblOffset )
     454    {
     455        this->comVtblOffset = comVtblOffset;
     456    }
    441457    void GetVtblMasterListIndexAndVtblIndex( const UserProc *pUserProc, int &vtblMasterListIndex, int &vtblIndex ) const;
    442458    int GetVtblMasterListIndex( const CClass *pClass ) const;
    443     long GetComVtblOffset() const;
    444459    long GetVtblMasterListOffset() const;
    445     void GenerateVTableMasterList( const std::vector<long> &vtableMasterList, long &offset );
    446     void GenerateFullVTables();
    447     void ActionVtblSchedule( LONG_PTR ImageBase, LONG_PTR MemPos_CodeSection, LONG_PTR MemPos_DataSection );
     460    void SetVtblMasterListOffset( int vtblMasterListOffset )
     461    {
     462        this->vtblMasterListOffset = vtblMasterListOffset;
     463    }
    448464    bool IsAbstract() const;
    449465
     
    484500    bool Insert( CClass *pClass, int nowLine );
    485501    CClass *Add( const NamespaceScopes &namespaceScopes, const NamespaceScopesCollection &importedNamespaces, const char *name,int nowLine);
    486 
    487     // vtblを一時的に生成
    488     void GenerateVTables();
    489 
    490     // vtblのを正規のオフセットで再構築
    491     void ActionVtblSchedule(LONG_PTR ImageBase, LONG_PTR MemPos_CodeSection, LONG_PTR MemPos_DataSection );
    492502
    493503    virtual void InitStaticMember();
  • trunk/ab5.0/abdev/BasicCompiler_Common/include/Method.h

    r558 r559  
    273273    // 仮想メソッドの個数を取得
    274274    int GetVtblNum() const;
    275 
    276     // vtblを生成
    277     void GenerateVTablePart( long &vtableDataTableOffset ) const;
    278 };
     275};
Note: See TracChangeset for help on using the changeset viewer.