[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/3.5/kdelibs/khtml
From: Maks Orlovich <maksim () kde ! org>
Date: 2006-06-29 23:21:49
Message-ID: 1151623309.992193.15038.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 556326 by orlovich:
Make this show-popups-thingie a bit less of a DanglingPointerTown.
Fixes crashes on browsing away from cnn.com, other sites.
BUG:129187
M +18 -11 khtml_part.cpp
M +1 -1 khtmlpart_p.h
--- branches/KDE/3.5/kdelibs/khtml/khtml_part.cpp #556325:556326
@@ -1876,10 +1876,14 @@
removeJSErrorExtension();
setSuppressedPopupIndicator( false );
d->m_openableSuppressedPopups = 0;
- for ( KHTMLPart* part = d->m_suppressedPopupOriginParts.first(); part; part = \
d->m_suppressedPopupOriginParts.next() ) {
- KJS::Window *w = KJS::Window::retrieveWindow( part );
- if (w)
- w->forgetSuppressedWindows();
+ for ( QValueListIterator<QGuardedPtr<KHTMLPart> > i = \
d->m_suppressedPopupOriginParts.begin(); + i != \
d->m_suppressedPopupOriginParts.end(); ++i ) { +
+ if (KHTMLPart* part = *i) {
+ KJS::Window *w = KJS::Window::retrieveWindow( part );
+ if (w)
+ w->forgetSuppressedWindows();
+ }
}
}
@@ -7360,7 +7364,7 @@
if ( enable && originPart ) {
d->m_openableSuppressedPopups++;
- if ( d->m_suppressedPopupOriginParts.find( originPart ) == -1 )
+ if ( d->m_suppressedPopupOriginParts.findIndex( originPart ) == -1 )
d->m_suppressedPopupOriginParts.append( originPart );
}
@@ -7405,12 +7409,15 @@
}
void KHTMLPart::showSuppressedPopups() {
- for ( KHTMLPart* part = d->m_suppressedPopupOriginParts.first(); part; part = \
d->m_suppressedPopupOriginParts.next() ) {
- KJS::Window *w = KJS::Window::retrieveWindow( part );
- if (w) {
- w->showSuppressedWindows();
- w->forgetSuppressedWindows();
- }
+ for ( QValueListIterator<QGuardedPtr<KHTMLPart> > i = \
d->m_suppressedPopupOriginParts.begin(); + i != \
d->m_suppressedPopupOriginParts.end(); ++i ) { + if (KHTMLPart* part = *i) {
+ KJS::Window *w = KJS::Window::retrieveWindow( part );
+ if (w) {
+ w->showSuppressedWindows();
+ w->forgetSuppressedWindows();
+ }
+ }
}
setSuppressedPopupIndicator( false );
d->m_openableSuppressedPopups = 0;
--- branches/KDE/3.5/kdelibs/khtml/khtmlpart_p.h #556325:556326
@@ -316,7 +316,7 @@
KURLLabel* m_statusBarUALabel;
KURLLabel* m_statusBarJSErrorLabel;
KURLLabel* m_statusBarPopupLabel;
- QPtrList<KHTMLPart> m_suppressedPopupOriginParts;
+ QValueList<QGuardedPtr<KHTMLPart> > m_suppressedPopupOriginParts;
int m_openableSuppressedPopups;
DOM::DocumentImpl *m_doc;
khtml::Decoder *m_decoder;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic