Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Index: gd.c
- ===================================================================
- RCS file: /repository/php-src/ext/gd/gd.c,v
- retrieving revision 1.417
- diff -u -r1.417 gd.c
- --- gd.c 29 May 2009 00:18:53 -0000 1.417
- +++ gd.c 19 Jun 2009 00:43:18 -0000
- @@ -1848,7 +1848,11 @@
- RETURN_FALSE;
- }
- - hdc = GetDC(0);
- + hdc = GetDC(0);
- +
- + if (!hdc) {
- + goto clean;
- + }
- if (client_area) {
- GetClientRect(window, &rc);
- @@ -1860,24 +1864,27 @@
- Height = rc.bottom - rc.top;
- }
- - Width = (Width/4)*4;
- -
- + Width = (Width/4)*4;
- memDC = CreateCompatibleDC(hdc);
- memBM = CreateCompatibleBitmap(hdc, Width, Height);
- - hOld = (HBITMAP) SelectObject (memDC, memBM);
- + if (!memDC || !memBM) {
- + goto clean;
- + }
- +
- + hOld = (HBITMAP) SelectObject (memDC, memBM);
- + handle = LoadLibrary("User32.dll");
- - handle = LoadLibrary("User32.dll");
- if ( handle == 0 ) {
- goto clean;
- }
- +
- pPrintWindow = (tPrintWindow) GetProcAddress(handle, "PrintWindow");
- if ( pPrintWindow ) {
- pPrintWindow(window, memDC, (UINT) client_area);
- } else {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Windows API too old");
- - RETURN_FALSE;
- goto clean;
- }
- @@ -1895,10 +1902,21 @@
- }
- clean:
- - SelectObject(memDC,hOld);
- - DeleteObject(memBM);
- - DeleteDC(memDC);
- - ReleaseDC( 0, hdc );
- + if (memDC) {
- + if (hOld) {
- + SelectObject(memDC, hOld);
- + }
- +
- + DeleteDC(memDC);
- + }
- +
- + if (memBM) {
- + DeleteObject(memBM);
- + }
- +
- + if (hdc) {
- + ReleaseDC( 0, hdc );
- + }
- if (!im) {
- RETURN_FALSE;
Add Comment
Please, Sign In to add comment