Changeset 52828 in webkit


Ignore:
Timestamp:
Jan 5, 2010 3:07:08 PM (14 years ago)
Author:
Adam Roben
Message:

Add assertions to catch double-destruction of WebViews earlier

I basically copied the m_deletionHasBegun logic from WTF::RefCounted.

Fixes <http://webkit.org/b/33219>.

Reviewed by Darin Adler.

  • WebView.cpp:

(WebView::WebView): Initialize m_deletionHasBegun
(WebView::AddRef): Assert that deletion hasn't already begun.
(WebView::Release): Assert that deletion hasn't already begun, then
record when deletion *does* begin.

  • WebView.h: Added m_deletionHasBegun.
Location:
trunk/WebKit/win
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit/win/ChangeLog

    r52827 r52828  
     12010-01-05  Adam Roben  <aroben@apple.com>
     2
     3        Add assertions to catch double-destruction of WebViews earlier
     4
     5        I basically copied the m_deletionHasBegun logic from WTF::RefCounted.
     6
     7        Fixes <http://webkit.org/b/33219>.
     8
     9        Reviewed by Darin Adler.
     10
     11        * WebView.cpp:
     12        (WebView::WebView): Initialize m_deletionHasBegun
     13        (WebView::AddRef): Assert that deletion hasn't already begun.
     14        (WebView::Release): Assert that deletion hasn't already begun, then
     15        record when deletion *does* begin.
     16
     17        * WebView.h: Added m_deletionHasBegun.
     18
    1192010-01-05  Adam Roben  <aroben@apple.com>
    220
     
    7290
    7391        * WebView.h: onIMERequest functions now return result directly.
     92
    7493
    75942010-01-04  Adam Roben  <aroben@apple.com>
  • trunk/WebKit/win/WebView.cpp

    r52827 r52828  
    297297WebView::WebView()
    298298    : m_refCount(0)
     299#if !ASSERT_DISABLED
     300    , m_deletionHasBegun(false)
     301#endif
    299302    , m_hostWindow(0)
    300303    , m_viewWindow(0)
     
    22682271ULONG STDMETHODCALLTYPE WebView::AddRef(void)
    22692272{
     2273    ASSERT(!m_deletionHasBegun);
    22702274    return ++m_refCount;
    22712275}
     
    22732277ULONG STDMETHODCALLTYPE WebView::Release(void)
    22742278{
     2279    ASSERT(!m_deletionHasBegun);
     2280
    22752281    ULONG newRef = --m_refCount;
    2276     if (!newRef)
     2282    if (!newRef) {
     2283#if !ASSERT_DISABLED
     2284        m_deletionHasBegun = true;
     2285#endif
    22772286        delete(this);
     2287    }
    22782288
    22792289    return newRef;
  • trunk/WebKit/win/WebView.h

    r52754 r52828  
    916916
    917917    ULONG m_refCount;
     918#if !ASSERT_DISABLED
     919    bool m_deletionHasBegun;
     920#endif
    918921    HWND m_hostWindow;
    919922    HWND m_viewWindow;
Note: See TracChangeset for help on using the changeset viewer.