summaryrefslogtreecommitdiffstats
path: root/WebKit/gtk/webkit/webkitwebframe.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/gtk/webkit/webkitwebframe.cpp')
-rw-r--r--WebKit/gtk/webkit/webkitwebframe.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/WebKit/gtk/webkit/webkitwebframe.cpp b/WebKit/gtk/webkit/webkitwebframe.cpp
index 63a2413..0e0c3c6 100644
--- a/WebKit/gtk/webkit/webkitwebframe.cpp
+++ b/WebKit/gtk/webkit/webkitwebframe.cpp
@@ -35,6 +35,7 @@
#include "AccessibilityObjectWrapperAtk.h"
#include "AnimationController.h"
#include "AXObjectCache.h"
+#include "DOMObjectCache.h"
#include "DocumentLoader.h"
#include "DocumentLoaderGtk.h"
#include "FrameLoader.h"
@@ -146,7 +147,10 @@ static void webkit_web_frame_get_property(GObject* object, guint prop_id, GValue
void webkit_web_frame_core_frame_gone(WebKitWebFrame* frame)
{
ASSERT(WEBKIT_IS_WEB_FRAME(frame));
- frame->priv->coreFrame = 0;
+ WebKitWebFramePrivate* priv = frame->priv;
+ if (priv->coreFrame)
+ DOMObjectCache::clearByFrame(priv->coreFrame);
+ priv->coreFrame = 0;
}
static WebKitWebDataSource* webkit_web_frame_get_data_source_from_core_loader(WebCore::DocumentLoader* loader)
@@ -160,6 +164,7 @@ static void webkit_web_frame_finalize(GObject* object)
WebKitWebFramePrivate* priv = frame->priv;
if (priv->coreFrame) {
+ DOMObjectCache::clearByFrame(priv->coreFrame);
priv->coreFrame->loader()->cancelAndClear();
priv->coreFrame = 0;
}
@@ -842,7 +847,7 @@ gchar* webkit_web_frame_counter_value_for_element_by_id(WebKitWebFrame* frame, c
*/
int webkit_web_frame_page_number_for_element_by_id(WebKitWebFrame* frame, const gchar* id, float pageWidth, float pageHeight)
{
- g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), NULL);
+ g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), 0);
Frame* coreFrame = core(frame);
if (!coreFrame)
@@ -864,7 +869,7 @@ int webkit_web_frame_page_number_for_element_by_id(WebKitWebFrame* frame, const
*/
int webkit_web_frame_number_of_pages(WebKitWebFrame* frame, float pageWidth, float pageHeight)
{
- g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), NULL);
+ g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), 0);
Frame* coreFrame = core(frame);
if (!coreFrame)