Changeset 73 in dev for BasicCompiler_Common/Class.cpp


Ignore:
Timestamp:
Mar 16, 2007, 11:07:14 PM (17 years ago)
Author:
dai_9181
Message:

Parameterクラスを適用。32bit側は動くようになったので、64bitのほうを調整する。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler_Common/Class.cpp

    r71 r73  
    267267    staticMembers.push_back( member );
    268268}
    269 void CClass::AddMethod( SUBINFO *psi,DWORD dwAccess, bool isConst, BOOL bAbstract, BOOL bVirtual ){
     269void CClass::AddMethod( SubInfo *psi,DWORD dwAccess, bool isConst, BOOL bAbstract, BOOL bVirtual ){
    270270    CMethod *method = new CMethod();
    271271    method->psi = psi;
     
    278278    methods.push_back( method );
    279279}
    280 void CClass::AddStaticMethod(SUBINFO *psi,DWORD dwAccess){
     280void CClass::AddStaticMethod(SubInfo *psi,DWORD dwAccess){
    281281    CMethod *method = new CMethod();
    282282    method->psi=psi;
     
    322322    return 0;
    323323}
    324 CMethod *CClass::GetMethodInfo( SUBINFO *psi ){
     324CMethod *CClass::GetMethodInfo( SubInfo *psi ){
    325325    for( int i=(int)methods.size()-1; i>=0; i-- ){
    326326        if( psi == methods[i]->psi ) return methods[i];
     
    328328    return NULL;
    329329}
    330 CMethod *CClass::GetStaticMethodInfo( SUBINFO *psi ){
     330CMethod *CClass::GetStaticMethodInfo( SubInfo *psi ){
    331331    for( int i=(int)staticMethods.size()-1; i>=0; i-- ){
    332332        if( psi == staticMethods[i]->psi ) return staticMethods[i];
     
    347347}
    348348
    349 void CClass::EnumStaticMethod( const char *methodName, std::vector<SUBINFO *> &subs ) const
     349void CClass::EnumStaticMethod( const char *methodName, std::vector<SubInfo *> &subs ) const
    350350{
    351351    foreach( CMethod *method, staticMethods ){
     
    356356}
    357357
    358 void CClass::EnumMethod( const char *methodName, std::vector<SUBINFO *> &subs ) const
     358void CClass::EnumMethod( const char *methodName, std::vector<SubInfo *> &subs ) const
    359359{
    360360    //オブジェクトのメンバ関数の場合
     
    367367}
    368368
    369 void CClass::EnumMethod( const BYTE idOperatorCalc, std::vector<SUBINFO *> &subs ) const
     369void CClass::EnumMethod( const BYTE idOperatorCalc, std::vector<SubInfo *> &subs ) const
    370370{
    371371    //オブジェクトのメンバ関数の場合
    372372    //※オーバーライドされた関数を先にサーチする必要があるため、バックサーチを行う
    373373    for( int i=(int)methods.size()-1; i>=0; i-- ){
    374         SUBINFO *psi = methods[i]->psi;
     374        SubInfo *psi = methods[i]->psi;
    375375        char *temp = psi->name;
    376376        if(temp[0]==1&&temp[1]==ESC_OPERATOR){
     
    508508
    509509
    510 int CClass::GetFuncNumInVtbl( const SUBINFO *psi ) const
     510int CClass::GetFuncNumInVtbl( const SubInfo *psi ) const
    511511{
    512512    int n = 0;
     
    527527    //////////////////////////////////////
    528528
    529     SUBINFO **ppsi;
    530     ppsi=(SUBINFO **)HeapAlloc(hHeap,0,vtbl_num*sizeof(SUBINFO *));
     529    SubInfo **ppsi;
     530    ppsi=(SubInfo **)HeapAlloc(hHeap,0,vtbl_num*sizeof(SubInfo *));
    531531
    532532    //関数テーブルに値をセット
     
    565565    int i;
    566566    for(i=0;i<vtbl_num;i++){
    567         SUBINFO *psi;
    568         psi=(SUBINFO *)pVtbl[i];
     567        SubInfo *psi;
     568        psi=(SubInfo *)pVtbl[i];
    569569        if(!psi) continue;
    570570        pVtbl[i]=psi->CompileAddress+ImageBase+MemPos_CodeSection;
     
    835835
    836836    //関数ハッシュへ登録
    837     SUBINFO *psi;
     837    SubInfo *psi;
    838838    psi=AddSubData(buffer,NowLine,bVirtual,pobj_c,bStatic);
    839839    if(!psi) return;
     
    849849
    850850        //標準コンストラクタ(引数なし)
    851         if(psi->ParmNum==0) fConstructor=1;
     851        if(psi->params.size()==0) fConstructor=1;
    852852
    853853        //強制的にConst修飾子をつける
     
    894894
    895895        if(lstrcmp(temporary,method->psi->name)==0){
    896             if(CompareParameter(
    897                 method->psi->pParmInfo,method->psi->ParmNum,
    898                 psi->pParmInfo,psi->ParmNum
    899                 )==0){
     896            if( Parameter::Equals( method->psi->params, psi->params ) ){
    900897                //関数名、パラメータ属性が合致したとき
    901898                SetError(15,psi->name,NowLine);
     
    911908    foreach( CMethod *method, pobj_c->methods ){
    912909        if(lstrcmp(temporary,method->psi->name)==0){
    913             if(CompareParameter(
    914                 method->psi->pParmInfo,method->psi->ParmNum,
    915                 psi->pParmInfo,psi->ParmNum
    916                 )==0){
     910            if( Parameter::Equals( method->psi->params, psi->params ) ){
    917911
    918912                if(method->psi->bVirtual){
     
    14441438}
    14451439
    1446 void CDBClass::StartCompile( SUBINFO *psi ){
     1440void CDBClass::StartCompile( SubInfo *psi ){
    14471441    pCompilingClass = psi->pobj_ParentClass;
    14481442    if( pCompilingClass ){
Note: See TracChangeset for help on using the changeset viewer.