source: webkit/trunk/JavaScriptCore/wtf/OwnPtrWin.cpp@ 26881

Last change on this file since 26881 was 25934, checked in by darin, 18 years ago

JavaScriptCore:

Reviewed by Adam.

  • add support for GDI objects to OwnPtr; I plan to use this to fix some GDI handle leaks
  • kjs/grammar.y: Change parser to avoid macros that conflict with macros defined in Windows system headers: THIS, DELETE, VOID, IN, and CONST. This is needed because OwnPtr.h will now include <windows.h>.
  • kjs/keywords.table: Ditto.
  • wtf/OwnPtr.h: For PLATFORM(WIN), add support so that OwnPtr can be a GDI handle, and it will call DeleteObject. Also change to use the RemovePointer technique used by RetainPtr, so you can say OwnPtr<HBITMAP> rather than having to pass in the type pointed to by HBITMAP.
  • wtf/OwnPtrWin.cpp: Added. (WebCore::deleteOwnedPtr): Put this in a separate file so that we don't have to include <windows.h> in OwnPtr.h.

WebCore:

Reviewed by Adam.

  • add support for GDI objects to OwnPtr; I plan to use this to fix some GDI handle leaks
  • css/CSSGrammar.y: Change parser to avoid macro that conflicts with macro defined in Windows system headers: FLOAT. This is needed because OwnPtr.h will now include <windows.h>.
  • css/CSSParser.cpp: (WebCore::CSSParser::lex): Ditto.
  • css/tokenizer.flex: Ditto.
  • platform/win/CursorWin.cpp: (WebCore::Cursor::Cursor): Use OwnPtr for a few HBITMAP objects as a test case.
  • platform/win/COMPtr.h: (COMPtr::COMPtr): Fix so that we can use Query with other COMPtr. Before this would not compile if it was ever instantiated.

win:

Reviewed by Adam.

  • started using the new OwnPtr everywhere we do DeleteObject
  • WebNodeHighlight.cpp: (WebNodeHighlight::updateWindow):
  • WebView.cpp: (WebView::WebView): (WebView::deleteBackingStore): (WebView::ensureBackingStore): (WebView::addToDirtyRegion): (WebView::scrollBackingStore): (WebView::updateBackingStore): (WebView::paint): (WebView::paintIntoBackingStore): (WebView::paintIntoWindow):
  • WebView.h:

Also set svn:eol-style on all .vcproj to CRLF.

Also added svn:ignore of *.user for WebKitInitializer.

  • Property svn:executable set to *
File size: 1.9 KB
Line 
1/*
2 * Copyright (C) 2007 Apple Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26#include "config.h"
27#include "OwnPtr.h"
28
29#include <windows.h>
30
31namespace WTF {
32
33void deleteOwnedPtr(HBITMAP ptr)
34{
35 if (ptr)
36 DeleteObject(ptr);
37}
38
39void deleteOwnedPtr(HBRUSH ptr)
40{
41 if (ptr)
42 DeleteObject(ptr);
43}
44
45void deleteOwnedPtr(HFONT ptr)
46{
47 if (ptr)
48 DeleteObject(ptr);
49}
50
51void deleteOwnedPtr(HPALETTE ptr)
52{
53 if (ptr)
54 DeleteObject(ptr);
55}
56
57void deleteOwnedPtr(HPEN ptr)
58{
59 if (ptr)
60 DeleteObject(ptr);
61}
62
63void deleteOwnedPtr(HRGN ptr)
64{
65 if (ptr)
66 DeleteObject(ptr);
67}
68
69}
Note: See TracBrowser for help on using the repository browser.