VCL 中的一個記憶體洩漏 Bug (轉)
VCL 中的一個記憶體洩漏 Bug (轉)[@more@]
在valedit.pas中,TValueListStrings類沒有實現虛擬的Destroy方法,
它實現了虛擬的Clear方法, 但是它的父類TStringList的
Destroy中並不透過Clear()來釋放資源,因此TValueListStrings
中為成員ItemProps分配的就丟失了.
所以如果在Form中新增了TValueListEditor,並且在程式碼中
使用了其ItemProperty成員(因為它是延遲分配,只有第一次使用時才分配記憶體),
則需要在Form.Destroy()方法中顯式的呼叫Clear()方法,如下:
MyForm.Destroy()
{
...
MyValueListEditor->Strings->Clear();
...
}
這是在C++ Builder 6的VCL 中發現的, 估計 6中
也應該有這個.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993247/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C++ Builder 5 和 6中VCL的一個記憶體洩漏 BUG (轉)C++UI記憶體
- 【轉】Java的記憶體洩漏Java記憶體
- 【轉】java中的記憶體溢位和記憶體洩漏Java記憶體溢位
- Perfdog 玩轉記憶體洩漏記憶體
- vue使用中的記憶體洩漏Vue記憶體
- [譯] Swift 中的記憶體洩漏Swift記憶體
- Android中的記憶體洩漏Android記憶體
- 記憶體洩漏記憶體
- 分析記憶體洩漏和goroutine洩漏記憶體Go
- 記憶體洩漏的原因記憶體
- 如何避免JavaScript中的記憶體洩漏?JavaScript記憶體
- Android中的記憶體洩漏模式Android記憶體模式
- Swift 閉包中的記憶體洩漏Swift記憶體
- 介紹Java中的記憶體洩漏Java記憶體
- 關於java中的記憶體洩漏Java記憶體
- 處理記憶體洩漏的一種MFC方法 (轉)記憶體
- 小心遞迴中記憶體洩漏遞迴記憶體
- js記憶體洩漏JS記憶體
- Java記憶體洩漏Java記憶體
- webView 記憶體洩漏WebView記憶體
- Javascript記憶體洩漏JavaScript記憶體
- 1.記憶體優化(一)記憶體洩漏記憶體優化
- 檢測並排除記憶體洩漏 (轉)記憶體
- [譯]理解閉包中的記憶體洩漏記憶體
- JavaScript中的垃圾回收和記憶體洩漏JavaScript記憶體
- 翻譯 | 理解Java中的記憶體洩漏Java記憶體
- 如何檢查Javascript中的記憶體洩漏JavaScript記憶體
- 深入理解Java中的記憶體洩漏Java記憶體
- 如何識別Java中的記憶體洩漏Java記憶體
- WebView引起的記憶體洩漏WebView記憶體
- ARC下的記憶體洩漏記憶體
- Java應用程式中的記憶體洩漏及記憶體管理Java記憶體
- Node.js 中記憶體洩漏分析Node.js記憶體
- 記憶體分析與記憶體洩漏定位記憶體
- 記憶體洩漏和記憶體溢位記憶體溢位
- valgrind 記憶體洩漏分析記憶體
- Android 記憶體洩漏Android記憶體
- Android記憶體洩漏Android記憶體