Ignore:
Timestamp:
Jun 9, 2001, 4:50:26 PM (24 years ago)
Author:
sandervl
Message:

reference count (window + class objects) rewrite

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/user32/dcrgn.cpp

    r5687 r5935  
    1 /* $Id: dcrgn.cpp,v 1.5 2001-05-11 13:31:54 sandervl Exp $ */
     1/* $Id: dcrgn.cpp,v 1.6 2001-06-09 14:50:17 sandervl Exp $ */
    22
    33/*
     
    6868    if (!pRect) {
    6969        dprintf(("GetUpdateRect returned %d", updateRegionExists));
     70        RELEASE_WNDOBJ(wnd);
    7071        return (updateRegionExists);
    7172    }
     
    7879                pRect->left = pRect->top = pRect->right = pRect->bottom = 0;
    7980            }
     81            RELEASE_WNDOBJ(wnd);
    8082            return FALSE;
    8183        }
     
    9799
    98100   dprintf(("GetUpdateRect returned (%d,%d)(%d,%d)", pRect->left, pRect->top, pRect->right, pRect->bottom));
     101   RELEASE_WNDOBJ(wnd);
    99102   return updateRegionExists;
    100103}
     
    112115        dprintf(("WARNING: GetUpdateRgn %x %x %d; invalid handle", hwnd, hrgn, erase));
    113116        SetLastError(ERROR_INVALID_WINDOW_HANDLE_W);
     117        if(wnd) RELEASE_WNDOBJ(wnd);
    114118        return ERROR_W;
    115119    }
     
    118122        dprintf(("WARNING: GetUpdateRgn %x %x %d; RGN_ERROR", hwnd, hrgn, erase));
    119123        SetLastError(ERROR_INVALID_WINDOW_HANDLE_W);
     124        RELEASE_WNDOBJ(wnd);
    120125        return ERROR_W;
    121126    }
     
    127132            dprintf(("WARNING: GetUpdateRgn %x %x %d; setWinDeviceRegionFromPMDeviceRegion failed!", hwnd, hrgn, erase));
    128133            SetLastError(ERROR_INVALID_WINDOW_HANDLE_W);
     134            RELEASE_WNDOBJ(wnd);
    129135            return ERROR_W;
    130136        }
    131137        if(erase) sendEraseBkgnd(wnd);
    132138    }
     139    RELEASE_WNDOBJ(wnd);
    133140    return lComplexity;
    134141}
     
    146153        dprintf(("WARNING: ExcludeUpdateRgn %x %x; invalid handle", hdc, hwnd));
    147154        SetLastError(ERROR_INVALID_WINDOW_HANDLE_W);
     155        if(wnd) RELEASE_WNDOBJ(wnd);
    148156        return ERROR_W;
    149157    }
     
    155163    }
    156164    else SetLastError(ERROR_SUCCESS_W);
     165
     166    RELEASE_WNDOBJ(wnd);
    157167    return lComplexity;      // windows and PM values are identical
    158168}
     
    183193    dprintf(("USER32:GetWindowRgn (%x,%x)", hwnd, hRgn));
    184194    hWindowRegion = window->GetWindowRegion();
    185 
     195    RELEASE_WNDOBJ(window);
    186196    return CombineRgn(hRgn, hWindowRegion, 0, RGN_COPY_W);
    187197}
     
    228238        RedrawWindow(hwnd, 0, 0, RDW_UPDATENOW_W);
    229239    }
     240    RELEASE_WNDOBJ(window);
    230241//TODO:
    231242//  When this function is called, the system sends the WM_WINDOWPOSCHANGING and
Note: See TracChangeset for help on using the changeset viewer.