博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DataSet.GetBookMark内存泄漏
阅读量:4677 次
发布时间:2019-06-09

本文共 542 字,大约阅读时间需要 1 分钟。

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

原来以为是编辑窗体的问题。经过排查发现是编辑窗体关闭后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;

转载于:https://www.cnblogs.com/DKSoft/archive/2011/04/30/2033452.html

你可能感兴趣的文章
设计模式1-创建型模式-工厂模式(Factory Method Pattern)
查看>>
Design Pattern --- Strategy
查看>>
mui列表跳转到详情页优化方案
查看>>
一些简单有用的方法合集
查看>>
Neutron 架构 - 每天5分钟玩转 OpenStack(67)
查看>>
详解JS设计模式
查看>>
CPSR寄存器
查看>>
Java基础50题test7—处理字符串
查看>>
保险行业电话外呼型呼叫中心方案
查看>>
自建型呼叫中心
查看>>
input file 文件上传,js控制上传文件的大小和格式
查看>>
Day 6 函数与模块
查看>>
java类中final方法的作用
查看>>
【58同城模拟】第一日。框架。
查看>>
MVC---- DataSet 页面遍历
查看>>
WebApi请求原理
查看>>
[Node.js] node-persist: localStorage on the server
查看>>
jquery.event 研究学习之bind篇
查看>>
LOJ #108. 多项式乘法
查看>>
军事机密(Secret.pas)
查看>>