Hello list
I have a program written in C++ 7
Everything is working fine, but when I am checking for a memory leaks -
first one came from MagickWandGenesis. Nothing is actually happens after
eliminating this function not in terms of functionality not in terms of new
memory leaks.
But then after "boundcheckers" shows a 3 memory leak exiting program:
1) NewMagickWand -> wand->id=AcquireWandId();->
AcquireSemaphoreInfo(&wand_semaphore);
2) NewMagickWand-> (void) AddValueToSplayTree(wand_ids,(const void *)
id,(const void *) id);
3) NewMagickWand-> wand->id=AcquireWandId();->
wand_ids=NewSplayTree((int (*)(const void *,const void *)) NULL,
(void *(*)(void *)) NULL,(void *(*)(void *)) NULL);
Sorry can't figure it out myself how to fix it.
If anybody got across this issue??
Thank you,
Eugene Feiguelman
The short list of the function would be below.
/// image magick :
InitializeMagick(exePath);
MagickWandGenesis
GetExceptionInfo(&exception);
....
DestroyExceptionInfo(&exception);
//read image
mwandBase=NewMagickWand();
MagickReadImage(mwandBase,(LPCTSTR)file);
// draw text on to mwandBase
if(dwand != NULL) {
DestroyDrawingWand(dwand);
dwand = NULL;
}
dwand = NewDrawingWand();
DrawSetTextEncoding(dwand, "UTF-8");
DrawSetFont(dwand, font.lfFaceName);
DrawSetFontSize(dwand, rowsM/10);
DrawSetFontStyle(dwand, font.lfItalic?ItalicStyle: NormalStyle);
DrawSetFontWeight(dwand, font.lfWeight);
DrawSetGravity(dwand, SouthGravity);
DrawAnnotation(dwand..., text1);
DrawAnnotation(dwand, ..., text2);
MagickDrawImage(mwandBase,dwand);
// resize image (mwand)
if mwand!=NULL{
MagickRemoveImage(mwand);
ClearMagickWand(mwand);
mwand= DestroyMagickWand(mwand);
mwand = NULL;
}
mwand = CloneMagickWand(mwandBase);
FilterTypes ft = TriangleFilter;
double imblur = 0.4;
MagickResizeImage(
mwand,
size.cx,
size.cy,
ft,
imblur);
MagickGetImageWidth(mwand);
MagickGetImageHeight(mwand);
//extract (PixelPacket *) and dispaly
MagickGetImagePixels(mwand,0,0,columnsM,
rowsM,"RGBO",ShortPixel,pixels);
PixelWand * pxWand = NewPixelWand();
MagickGetImageBackgroundColor(mwand,pxWand);
PixelPacket bkColor;
PixelGetQuantumColor(pxWand,&bkColor);
//dispaly with SetPixelV(
............
............
ClearPixelWand(pxWand);
DestroyPixelWand(pxWand);
....
~ clear stuff in the end
if(dwand != NULL) {
DestroyDrawingWand(dwand);
dwand = NULL;
}
if(mwand != NULL) {
MagickRemoveImage(mwand);
ClearMagickWand(mwand);
mwand = DestroyMagickWand(mwand);
mwand = NULL;
}
if(mwandBase != NULL) {
MagickRemoveImage(mwandBase);
ClearMagickWand(mwandBase);
mwandBase = DestroyMagickWand(mwandBase);
mwandBase = NULL;
}
MagickWandTerminus();
.......
DestroyMagick();
Best Regards,
Eugene Feiguelman
Software Team Leader
Mailing Innovations
* (905) 677-44-41 ext. 238
* [EMAIL PROTECTED]
* 20-3397 American drive, Mississauga ,ON L4V 1T8
<http://www.mailinv.com/> http://www.mailinv.com/
This email and any files transmitted with it may contain PRIVILEGED or
CONFIDENTIAL information and may be read or used only by the intended
recipient.
_______________________________________________
Magick-users mailing list
[email protected]
http://studio.imagemagick.org/mailman/listinfo/magick-users