Changeset 120 in dev for BasicCompiler_Common/Parameter.h


Ignore:
Timestamp:
May 13, 2007, 8:50:04 AM (17 years ago)
Author:
dai_9181
Message:

Parameter::Equals静的メソッドを廃止し、Parameters::Equalsメソッドを用意。
ポインタに要するサイズよりも一回り大きなアラインメントが指定されているときに、呼び出し側のオフセットズレを考慮するよう、修正

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler_Common/Parameter.h

    r78 r120  
    22
    33#include "Type.h"
    4 
    5 class Parameter;
    6 typedef vector<Parameter *> Parameters;
    74
    85class Parameter : public Type
     
    8885        return false;
    8986    }
     87};
    9088
     89class Parameters : public vector<Parameter *>
     90{
     91public:
    9192
    92     static bool Equals( const Parameters &paramsA, const Parameters paramsB ){
    93         if( paramsA.size() != paramsB.size() ){
     93    bool Equals( const Parameters &params ) const
     94    {
     95        if( this->size() != params.size() ){
    9496            return false;
    9597        }
    9698
    97         int max = (int)paramsA.size();
     99        int max = (int)this->size();
    98100        for( int i=0; i<max; i++ ){
    99             if( !paramsA[i]->Equals( *paramsB[i] ) ){
     101            if( !(*this)[i]->Equals( *params[i] ) ){
    100102                return false;
    101103            }
     
    104106        return true;
    105107    }
     108
     109    int GetMemorySize() const
     110    {
     111        return (int)this->size() * PTR_SIZE;
     112    }
    106113};
Note: See TracChangeset for help on using the changeset viewer.