Ignore:
Timestamp:
Jul 26, 2008, 8:30:56 PM (16 years ago)
Author:
dai_9181
Message:
  • #182への対応。シンボル名として使えない文字列を含んだファイル名のビルドができない不具合を修正。
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/Compiler.cpp

    r693 r710  
    5252        this->GetObjectModule().StaticLink( *pStaticLibrary, this->IsSll() );
    5353    }
     54}
     55
     56const std::string &Compiler::GetGlobalAreaProcName() const
     57{
     58    static std::string globalAreaProcName;
     59
     60    if( globalAreaProcName.empty() )
     61    {
     62        // 初期化
     63        _ASSERTE( !this->GetModuleName().empty() );
     64
     65        std::string originalName = this->GetModuleName();
     66
     67        // モジュール名がシンボル名として使えない場合があるので、16進数文字列に変換する
     68        char temporary[VN_SIZE*2] = "";
     69        for( int i=0; i<originalName.size(); i++ )
     70        {
     71            sprintf( temporary + strlen(temporary), "%2x", originalName[i] );
     72        }
     73
     74        globalAreaProcName = (std::string)"_GlobalArea_" + temporary;
     75    }
     76
     77    return globalAreaProcName;
    5478}
    5579
     
    442466        return true;
    443467    }
    444     return ( pCompilingUserProc->GetName() == this->globalAreaProcName );
     468    return ( pCompilingUserProc->GetName() == this->GetGlobalAreaProcName() );
    445469}
    446470bool Compiler::IsLocalAreaCompiling()
Note: See TracChangeset for help on using the changeset viewer.