最近某個作品在開啟檔案時會不定期當掉 ... 原本一直找不出原因, 直到我在除另一個不相關的 bug 時發現這個函式:
const char * fromURI( const QUrl & uri ) { QByteArray tmp( uri.toString().toUtf8() ); #ifdef Q_OS_WIN if( uri.scheme() == "file" ) { tmp.prepend( 'w' ); } #endif return tmp; }
看不出來嗎? 我提示一下, QByteArray 有一個
沒錯, 我回傳了暫時物件裡的 handle , 這就是程式會不定期崩潰的元兇!
真不知道幾天前我怎麼會寫下這種東西= =
operator const char *() const
成員讓它自動轉型成 const char * , 效果和 std::string::c_str() 一樣.沒錯, 我回傳了暫時物件裡的 handle , 這就是程式會不定期崩潰的元兇!
真不知道幾天前我怎麼會寫下這種東西= =
沒有留言:
張貼留言