Ignore:
Timestamp:
Sep 10, 2008, 1:53:07 AM (16 years ago)
Author:
dai
Message:
  • Compiler::AddStringToDataTableメソッドを実装。
  • ToWStringメソッドの内部予備バッファを増やした。
Location:
trunk/ab5.0/abdev/BasicCompiler_Common
Files:
4 edited

Legend:

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

    r710 r745  
    164164        return isUnicode;
    165165    }
     166
     167    int AddStringToDataTable( const std::string &text );
    166168
    167169
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/Compiler.cpp

    r735 r745  
    7676
    7777    return globalAreaProcName;
     78}
     79
     80int Compiler::AddStringToDataTable( const std::string &text )
     81{
     82    if( this->IsUnicode() )
     83    {
     84        return this->GetObjectModule().dataTable.AddWString( Jenga::Common::ToWString( text ) );
     85    }
     86    else
     87    {
     88        return this->GetObjectModule().dataTable.AddString( text );
     89    }
    7890}
    7991
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/DataTableGenerator.cpp

    r591 r745  
    178178
    179179    // 文字列バッファをデータ領域へ追加
    180     if( compiler.IsUnicode() )
    181     {
    182         dataTable.AddWString( Jenga::Common::ToWString( str ) );
    183     }
    184     else
    185     {
    186         dataTable.AddString( str );
    187     }
     180    compiler.AddStringToDataTable( str );
    188181
    189182    return dataTableOffset;
     
    239232            {
    240233                // Charポインタ
    241                 if( compiler.IsUnicode() )
    242                 {
    243                     strOffset = dataTable.AddWString( Jenga::Common::ToWString( tempParamStr ) );
    244                 }
    245                 else
    246                 {
    247                     strOffset = dataTable.AddString( tempParamStr );
    248                 }
     234                strOffset = compiler.AddStringToDataTable( tempParamStr );
    249235            }
    250236
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/Exception.cpp

    r591 r745  
    196196            // パラメータのクラス名
    197197            char paramName[VN_SIZE] = "";
    198             int paramNameDataTableOffset = 0;
    199198            if( catchScope.GetParamType().IsObject() )
    200199            {
    201200                lstrcpy( paramName, catchScope.GetParamType().GetClass().GetFullName().c_str() );
    202201            }
    203             if( compiler.IsUnicode() )
    204             {
    205                 paramNameDataTableOffset = compiler.GetObjectModule().dataTable.AddWString( Jenga::Common::ToWString( paramName ) );
    206             }
    207             else
    208             {
    209                 paramNameDataTableOffset = compiler.GetObjectModule().dataTable.AddString( paramName );
    210             }
     202            int paramNameDataTableOffset = compiler.AddStringToDataTable( paramName );
    211203            *((LONG_PTR *)(buffer+pos)) = paramNameDataTableOffset;
    212204            pos += sizeof(LONG_PTR);
Note: See TracChangeset for help on using the changeset viewer.