[webkit-dev] Fix for Qt build
Maciej Stachowiak
mjs at apple.com
Sat May 12 11:28:05 PDT 2007
On May 12, 2007, at 7:59 AM, Holger Freyther wrote:
>
> Am 12.05.2007 um 13:28 schrieb Holger Freyther:
>
>>
>> Am 12.05.2007 um 12:32 schrieb Maciej Stachowiak:
>>
>>>
>>> I can't check this in right now because the SVN server is
>>> temporarily out of disk, but this appears to mostly fix the Qt
>>> build, at least in QtLauncher. Rob Buis helped me test and is
>>> running layout tests now.
>>
>
> Okay,
> the difference between Mac and Gdk is in
> FrameLoaderClient::canCachePage. If canCachePage returns false,
> clear() will be called which sets m_frame->d->m_doc->m_ptr to 0.
> And on load setEncoding comes after calling saveDocumentState. So
> there is no way to restore/has a valid document.
Oh - that was actually a bug and I believe I've landed a fix.
> I don't know how to fix it, but at least this explains why it
> crashes on Gdk and not on Mac. I think we should review codepath's
> ending in a clear().
>
> void FrameLoader::provisionalLoadStarted()
> {
> m_firstLayoutDone = false;
> cancelRedirection(true);
> m_client->provisionalLoadStarted();
>
> if (canCachePage()) {
> if (m_client->canCachePage()) {
> if (!m_currentHistoryItem->cachedPage()) {
> cachePageToHistoryItem(m_currentHistoryItem.get());
> purgePageCache();
> }
> } else {
> // Put the document into a null state, so it can be
> restored correctly.·
> clear();
> }
> }
> }
The code now reads like this:
if (canCachePage() && m_client->canCachePage() && !
m_currentHistoryItem->cachedPage()) {
cachePageToHistoryItem(m_currentHistoryItem.get());
purgePageCache();
}
More information about the webkit-dev
mailing list