[evolution/wip/webkit2] Fix couple of more leaks of WebKitDOM objects
- From: Tomas Popela <tpopela src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution/wip/webkit2] Fix couple of more leaks of WebKitDOM objects
- Date: Mon, 1 Aug 2016 07:52:14 +0000 (UTC)
commit 34a50fe8de3c12d5be8bafffaf4d08b936f2f168
Author: Tomas Popela <tpopela redhat com>
Date: Mon Aug 1 09:50:51 2016 +0200
Fix couple of more leaks of WebKitDOM objects
.../web-extension/e-editor-dom-functions.c | 19 +++--
.../web-extension/e-editor-undo-redo-manager.c | 8 +-
web-extensions/e-dom-utils.c | 79 ++++++++++----------
web-extensions/e-web-extension.c | 11 ++-
4 files changed, 61 insertions(+), 56 deletions(-)
---
diff --git a/modules/webkit-editor/web-extension/e-editor-dom-functions.c
b/modules/webkit-editor/web-extension/e-editor-dom-functions.c
index 71198af..2c88de1 100644
--- a/modules/webkit-editor/web-extension/e-editor-dom-functions.c
+++ b/modules/webkit-editor/web-extension/e-editor-dom-functions.c
@@ -3559,7 +3559,7 @@ e_editor_dom_body_input_event_process (EEditorPage *editor_page,
if (do_spell_check)
e_editor_dom_force_spell_check_for_current_paragraph (editor_page);
- g_object_unref (range);
+ g_clear_object (&range);
}
static void
@@ -12713,13 +12713,13 @@ e_editor_dom_selection_save (EEditorPage *editor_page)
g_clear_object (&dom_window);
if (webkit_dom_dom_selection_get_range_count (dom_selection) < 1) {
- g_object_unref (dom_selection);
+ g_clear_object (&dom_selection);
return;
}
range = webkit_dom_dom_selection_get_range_at (dom_selection, 0, NULL);
if (!range) {
- g_object_unref (dom_selection);
+ g_clear_object (&dom_selection);
return;
}
@@ -15447,7 +15447,7 @@ e_editor_dom_selection_set_monospace (EEditorPage *editor_page,
tt_element = dom_node_find_parent_element (node, "FONT");
if (!is_monospace_element (tt_element)) {
- g_object_unref (range);
+ g_clear_object (&range);
g_free (ev);
return;
}
@@ -15492,7 +15492,7 @@ e_editor_dom_selection_set_monospace (EEditorPage *editor_page,
e_editor_dom_force_spell_check_for_current_paragraph (editor_page);
- g_object_unref (range);
+ g_clear_object (&range);
}
static gboolean
@@ -17368,18 +17368,19 @@ gchar *
e_editor_dom_get_caret_word (EEditorPage *editor_page)
{
gchar *word;
- WebKitDOMRange *range = NULL;
+ WebKitDOMRange *range = NULL, *range_clone = NULL;
g_return_val_if_fail (E_IS_EDITOR_PAGE (editor_page), NULL);
range = e_editor_dom_get_current_range (editor_page);
/* Don't operate on the visible selection */
- range = webkit_dom_range_clone_range (range, NULL);
- webkit_dom_range_expand (range, "word", NULL);
- word = webkit_dom_range_to_string (range, NULL);
+ range_clone = webkit_dom_range_clone_range (range, NULL);
+ webkit_dom_range_expand (range_clone, "word", NULL);
+ word = webkit_dom_range_to_string (range_clone, NULL);
g_clear_object (&range);
+ g_clear_object (&range_clone);
return word;
}
diff --git a/modules/webkit-editor/web-extension/e-editor-undo-redo-manager.c
b/modules/webkit-editor/web-extension/e-editor-undo-redo-manager.c
index 4fbbe13..9f2ef7b 100644
--- a/modules/webkit-editor/web-extension/e-editor-undo-redo-manager.c
+++ b/modules/webkit-editor/web-extension/e-editor-undo-redo-manager.c
@@ -96,7 +96,7 @@ get_range_for_point (WebKitDOMDocument *document,
/* The point is outside the viewport, scroll to it. */
if (!range) {
- WebKitDOMDOMWindow *dom_window;
+ WebKitDOMDOMWindow *dom_window = NULL;
dom_window = webkit_dom_document_get_default_view (document);
webkit_dom_dom_window_scroll_to (dom_window, point.x, point.y);
@@ -105,7 +105,7 @@ get_range_for_point (WebKitDOMDocument *document,
scroll_top = webkit_dom_element_get_scroll_top (WEBKIT_DOM_ELEMENT (body));
range = webkit_dom_document_caret_range_from_point (
document, point.x - scroll_left, point.y - scroll_top);
- g_object_unref (dom_window);
+ g_clear_object (&dom_window);
}
return range;
@@ -663,7 +663,7 @@ undo_delete (EEditorPage *editor_page,
e_editor_dom_force_spell_check_in_viewport (editor_page);
- g_object_unref (dom_selection);
+ g_clear_object (&dom_selection);
return;
} else if (!next_sibling && !webkit_dom_node_is_same_node (parent_node,
current_block))
@@ -880,7 +880,7 @@ undo_delete (EEditorPage *editor_page,
e_editor_dom_force_spell_check_for_current_paragraph (editor_page);
}
- g_object_unref (dom_selection);
+ g_clear_object (&dom_selection);
}
static void
diff --git a/web-extensions/e-dom-utils.c b/web-extensions/e-dom-utils.c
index 460b569..24704ea 100644
--- a/web-extensions/e-dom-utils.c
+++ b/web-extensions/e-dom-utils.c
@@ -36,7 +36,7 @@ void
e_dom_utils_replace_local_image_links (WebKitDOMDocument *document)
{
gint ii, length;
- WebKitDOMNodeList *list;
+ WebKitDOMNodeList *list = NULL;
list = webkit_dom_document_query_selector_all (
document, "img[src^=\"file://\"]", NULL);
@@ -58,7 +58,7 @@ e_dom_utils_replace_local_image_links (WebKitDOMDocument *document)
g_free (src);
g_object_unref (img);
}
- g_object_unref (list);
+ g_clear_object (&list);
list = webkit_dom_document_query_selector_all (
document, "iframe", NULL);
@@ -77,7 +77,7 @@ e_dom_utils_replace_local_image_links (WebKitDOMDocument *document)
e_dom_utils_replace_local_image_links (content_document);
g_object_unref (iframe);
}
- g_object_unref (list);
+ g_clear_object (&list);
}
gboolean
@@ -107,7 +107,7 @@ e_dom_utils_document_has_selection (WebKitDOMDocument *document)
g_clear_object (&dom_selection);
if (!ret_val) {
- WebKitDOMHTMLCollection *frames;
+ WebKitDOMHTMLCollection *frames = NULL;
gulong ii, length;
frames = webkit_dom_document_get_elements_by_tag_name_as_html_collection (document, "iframe");
@@ -128,7 +128,7 @@ e_dom_utils_document_has_selection (WebKitDOMDocument *document)
g_object_unref (node);
}
- g_object_unref (frames);
+ g_clear_object (&frames);
}
return ret_val;
@@ -170,9 +170,9 @@ static gchar *
get_frame_selection_html (WebKitDOMElement *iframe)
{
WebKitDOMDocument *content_document;
- WebKitDOMDOMWindow *dom_window;
- WebKitDOMDOMSelection *dom_selection;
- WebKitDOMHTMLCollection *frames;
+ WebKitDOMDOMWindow *dom_window = NULL;
+ WebKitDOMDOMSelection *dom_selection = NULL;
+ WebKitDOMHTMLCollection *frames = NULL;
gulong ii, length;
content_document = webkit_dom_html_iframe_element_get_content_document (
@@ -183,9 +183,9 @@ get_frame_selection_html (WebKitDOMElement *iframe)
dom_window = webkit_dom_document_get_default_view (content_document);
dom_selection = webkit_dom_dom_window_get_selection (dom_window);
- g_object_unref (dom_window);
+ g_clear_object (&dom_window);
if (dom_selection && (webkit_dom_dom_selection_get_range_count (dom_selection) > 0)) {
- WebKitDOMRange *range;
+ WebKitDOMRange *range = NULL;
WebKitDOMElement *element;
WebKitDOMDocumentFragment *fragment;
@@ -212,13 +212,13 @@ get_frame_selection_html (WebKitDOMElement *iframe)
g_free (tmp);
}
- g_object_unref (range);
- g_object_unref (dom_selection);
+ g_clear_object (&range);
+ g_clear_object (&dom_selection);
return inner_html;
}
}
- g_object_unref (dom_selection);
+ g_clear_object (&dom_selection);
frames = webkit_dom_document_get_elements_by_tag_name_as_html_collection (content_document, "iframe");
length = webkit_dom_html_collection_get_length (frames);
@@ -233,12 +233,12 @@ get_frame_selection_html (WebKitDOMElement *iframe)
g_object_unref (node);
if (text != NULL) {
- g_object_unref (frames);
+ g_clear_object (&frames);
return text;
}
}
- g_object_unref (frames);
+ g_clear_object (&frames);
return NULL;
}
@@ -246,7 +246,7 @@ get_frame_selection_html (WebKitDOMElement *iframe)
gchar *
e_dom_utils_get_selection_content_html (WebKitDOMDocument *document)
{
- WebKitDOMHTMLCollection *frames;
+ WebKitDOMHTMLCollection *frames = NULL;
gulong ii, length;
if (!e_dom_utils_document_has_selection (document))
@@ -266,12 +266,12 @@ e_dom_utils_get_selection_content_html (WebKitDOMDocument *document)
g_object_unref (node);
if (text != NULL) {
- g_object_unref (frames);
+ g_clear_object (&frames);
return text;
}
}
- g_object_unref (frames);
+ g_clear_object (&frames);
return NULL;
}
@@ -279,9 +279,9 @@ static gchar *
get_frame_selection_content_text (WebKitDOMElement *iframe)
{
WebKitDOMDocument *content_document;
- WebKitDOMDOMWindow *window;
- WebKitDOMDOMSelection *selection;
- WebKitDOMHTMLCollection *frames;
+ WebKitDOMDOMWindow *dom_window = NULL;
+ WebKitDOMDOMSelection *dom_selection = NULL;
+ WebKitDOMHTMLCollection *frames = NULL;
gulong ii, length;
content_document = webkit_dom_html_iframe_element_get_content_document (
@@ -290,18 +290,21 @@ get_frame_selection_content_text (WebKitDOMElement *iframe)
if (!content_document)
return NULL;
- window = webkit_dom_document_get_default_view (content_document);
- selection = webkit_dom_dom_window_get_selection (window);
- if (selection && (webkit_dom_dom_selection_get_range_count (selection) > 0)) {
+ dom_window = webkit_dom_document_get_default_view (content_document);
+ dom_selection = webkit_dom_dom_window_get_selection (dom_window);
+ g_clear_object (&dom_window);
+ if (dom_selection && (webkit_dom_dom_selection_get_range_count (dom_selection) > 0)) {
WebKitDOMRange *range = NULL;
gchar *text = NULL;
- range = webkit_dom_dom_selection_get_range_at (selection, 0, NULL);
+ range = webkit_dom_dom_selection_get_range_at (dom_selection, 0, NULL);
if (range)
text = webkit_dom_range_to_string (range, NULL);
g_clear_object (&range);
+ g_clear_object (&dom_selection);
return text;
}
+ g_clear_object (&dom_selection);
frames = webkit_dom_document_get_elements_by_tag_name_as_html_collection (content_document, "iframe");
length = webkit_dom_html_collection_get_length (frames);
@@ -316,19 +319,19 @@ get_frame_selection_content_text (WebKitDOMElement *iframe)
g_object_unref (node);
if (text != NULL) {
- g_object_unref (frames);
+ g_clear_object (&frames);
return text;
}
}
- g_object_unref (frames);
+ g_clear_object (&frames);
return NULL;
}
gchar *
e_dom_utils_get_selection_content_text (WebKitDOMDocument *document)
{
- WebKitDOMHTMLCollection *frames;
+ WebKitDOMHTMLCollection *frames = NULL;
gulong ii, length;
frames = webkit_dom_document_get_elements_by_tag_name_as_html_collection (document, "iframe");
@@ -345,12 +348,12 @@ e_dom_utils_get_selection_content_text (WebKitDOMDocument *document)
g_object_unref (node);
if (text != NULL) {
- g_object_unref (frames);
+ g_clear_object (&frames);
return text;
}
}
- g_object_unref (frames);
+ g_clear_object (&frames);
return NULL;
}
@@ -402,8 +405,8 @@ add_css_rule_into_style_sheet (WebKitDOMDocument *document,
const gchar *style)
{
WebKitDOMElement *style_element;
- WebKitDOMStyleSheet *sheet;
- WebKitDOMCSSRuleList *rules_list;
+ WebKitDOMStyleSheet *sheet = NULL;
+ WebKitDOMCSSRuleList *rules_list = NULL;
gint length, ii, selector_length;
gboolean removed = FALSE;
@@ -449,13 +452,13 @@ add_css_rule_into_style_sheet (WebKitDOMDocument *document,
g_object_unref (rule);
}
- g_object_unref (rules_list);
+ g_clear_object (&rules_list);
/* Insert the rule at the end, so it will override previously inserted */
webkit_dom_css_style_sheet_add_rule (
WEBKIT_DOM_CSS_STYLE_SHEET (sheet), selector, style, length, NULL);
- g_object_unref (sheet);
+ g_clear_object (&sheet);
g_object_unref (style_element);
}
@@ -465,7 +468,7 @@ add_css_rule_into_style_sheet_recursive (WebKitDOMDocument *document,
const gchar *selector,
const gchar *style)
{
- WebKitDOMHTMLCollection *frames;
+ WebKitDOMHTMLCollection *frames = NULL;
gint ii, length;
/* Add rule to document */
@@ -498,7 +501,7 @@ add_css_rule_into_style_sheet_recursive (WebKitDOMDocument *document,
style);
g_object_unref (node);
}
- g_object_unref (frames);
+ g_clear_object (&frames);
}
void
@@ -1865,7 +1868,7 @@ merge_lists_if_possible (WebKitDOMNode *list)
EContentEditorBlockFormat format, prev, next;
gint ii, length;
WebKitDOMNode *prev_sibling, *next_sibling;
- WebKitDOMNodeList *lists;
+ WebKitDOMNodeList *lists = NULL;
prev_sibling = webkit_dom_node_get_previous_sibling (WEBKIT_DOM_NODE (list));
next_sibling = webkit_dom_node_get_next_sibling (WEBKIT_DOM_NODE (list));
@@ -1892,7 +1895,7 @@ merge_lists_if_possible (WebKitDOMNode *list)
merge_lists_if_possible (node);
g_object_unref (node);
}
- g_object_unref (lists);
+ g_clear_object (&lists);
}
WebKitDOMElement *
diff --git a/web-extensions/e-web-extension.c b/web-extensions/e-web-extension.c
index 97524e9..0492077 100644
--- a/web-extensions/e-web-extension.c
+++ b/web-extensions/e-web-extension.c
@@ -196,7 +196,7 @@ element_clicked_cb (WebKitDOMElement *element,
{
EWebExtension *extension = user_data;
WebKitDOMElement *offset_parent;
- WebKitDOMDOMWindow *dom_window;
+ WebKitDOMDOMWindow *dom_window = NULL;
gchar *attr_class, *attr_value;
const guint64 *ppage_id;
gdouble with_parents_left, with_parents_top;
@@ -258,7 +258,7 @@ web_extension_register_element_clicked_in_document (EWebExtension *extension,
WebKitDOMDocument *document,
const gchar *element_class)
{
- WebKitDOMHTMLCollection *collection;
+ WebKitDOMHTMLCollection *collection = NULL;
gulong ii, len;
g_return_if_fail (E_IS_WEB_EXTENSION (extension));
@@ -729,14 +729,15 @@ handle_method_call (GDBusConnection *connection,
iframe_document = e_dom_utils_find_document_with_uri (document, document_uri);
if (iframe_document) {
- WebKitDOMDOMWindow *window;
+ WebKitDOMDOMWindow *dom_window;
WebKitDOMElement *frame_element;
/* Get frame's window and from the window the actual <iframe> element */
- window = webkit_dom_document_get_default_view (iframe_document);
- frame_element = webkit_dom_dom_window_get_frame_element (window);
+ dom_window = webkit_dom_document_get_default_view (iframe_document);
+ frame_element = webkit_dom_dom_window_get_frame_element (dom_window);
webkit_dom_html_iframe_element_set_src (
WEBKIT_DOM_HTML_IFRAME_ELEMENT (frame_element), new_iframe_src);
+ g_clear_object (&dom_window);
}
g_dbus_method_invocation_return_value (invocation, NULL);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]