fixed memory leak when XCreateImage fail, thanks php-coder
fluxgen fluxgen
1 files changed,
11 insertions(+),
3 deletions(-)
jump to
M
src/FbTk/XFontImp.cc
→
src/FbTk/XFontImp.cc
@@ -221,7 +221,7 @@ boxlen/2 - lbearing,
boxlen/2 - descent, text, 1); // reserve memory for first XImage - vertdata = new unsigned char[vert_len * vert_h]; + vertdata = (unsigned char *)calloc((unsigned)(vert_len * vert_h), 1); XImage *I1 = XCreateImage(dpy, DefaultVisual(dpy, screen), 1, XYBitmap,@@ -229,7 +229,11 @@ 0, (char *)vertdata,
vert_w, vert_h, 8, 0); if (I1 == None) { - cerr<<"RotFont: "<<_FBTKTEXT(Error, CreateXImage, "Cant create XImage", "XCreateImage failed for some reason")<<"."<<endl; + cerr<<"RotFont: "<<_FBTKTEXT(Error, CreateXImage, + "Cant create XImage", + "XCreateImage failed for some reason") + <<"."<<endl; + free(vertdata); delete m_rotfont; m_rotfont = 0; return;@@ -267,7 +271,11 @@ XImage *I2 = XCreateImage(dpy, DefaultVisual(dpy, screen), 1, XYBitmap, 0,
(char *)bitdata, bit_w, bit_h, 8, 0); if (I2 == None) { - cerr<<"XFontImp: "<<_FBTKTEXT(Error, CreateXImage, "Cant create XImage", "XCreateImage failed for some reason")<<"."<<endl; + cerr<<"XFontImp: "<<_FBTKTEXT(Error, CreateXImage, + "Cant create XImage", + "XCreateImage failed for some reason") + <<"."<<endl; + free(bitdata); delete m_rotfont; m_rotfont = 0; return;