zoukankan      html  css  js  c++  java
  • DataSet.GetBookMark内存泄漏

    这几天查内存泄漏,发现编辑窗体弹出后,出现了内存泄漏。

    原来以为是编辑窗体的问题。经过排查发现是编辑窗体关闭后reOpen的时候

    因为需要记录原有数据集的位置所以用到了BookMark

    现在用了FastMM

    发现之前的写法有问题

    var

      lvBookMark:Pointer

    begin

      lvBookMark:=cdsMain.GetBookMark;

    try

        ……

    finally

       if cdsMain.ValidateBookMark(lvBookMark) then

         cdsMain.GotoBookmark(lvBookmark);

      end;

    ……

    这种写法会存在3字节的内存泄漏

      lvBookMark:=cdsMain.GetBookMark;

    try

        ……

    finally

       if cdsMain.ValidateBookMark(lvBookMark) then

         cdsMain.GotoBookmark(lvBookmark);

      cdsMain.FreeBookMark(lvBookMark)   ---加上这句。内存泄漏没有了

      end;

  • 相关阅读:
    python 文件 笔记
    python 模块、包 笔记
    类、对象
    python 函数 笔记
    测试价值体现
    断舍离-笔记2
    Happy 2006 POJ
    Triangle War POJ
    Complete the sequence! POJ
    放苹果 POJ
  • 原文地址:https://www.cnblogs.com/DKSoft/p/2033452.html
Copyright © 2011-2022 走看看