Hi,

What is the correct way to use TRawImage.PerformEffect?
Simply doing:
  Image1.Picture.Bitmap.RawImage.PerformEffect(someeffect)
will lead to memory loss, due to a getmem() call in PerformEffect.

Without looking at the context I tried freeing the memory allocated by
getmem by using freemem inside the PerformEffect method.
(You can see this "fix" in the attached patch in
http://bugs.freepascal.org/view.php?id=21068 )

Now Image1.Picture.Bitmap.RawImage.PerformEffect(someeffect) doesn't
leak memory anymore, but after rebuilding Lazarus the IDE crashes (at
least on Win7).
Undoing my "fix" and rebuilding Lazarus with -gh shows that Lazarus
does not leak memory, even after numerous calls to
TRawImage.PerformEffect (made by TImageList).

So either this simple
Image1.Picture.Bitmap.RawImage.PerformEffect(someeffect) is plain
wrong usage, or TImageList does something special to avoid this memory
leak? (I looked at the sources of TImageList but I'm obviously not
clever enough to see the solution.)

Can someone shed some light on this?

Bart

--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to