[evolution/wip/webkit2] Bug 744401 - Many WebKitDom objects leaked for every message viewed
- From: Tomas Popela <tpopela src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution/wip/webkit2] Bug 744401 - Many WebKitDom objects leaked for every message viewed
- Date: Wed, 22 Apr 2015 13:01:59 +0000 (UTC)
commit 61b820f2f73006473564c790809b429493861bfc
Author: Tomas Popela <tpopela redhat com>
Date: Wed Mar 25 16:44:37 2015 +0100
Bug 744401 - Many WebKitDom objects leaked for every message viewed
Follow-up fix that fixes the leak of two strings introduced with
previous fix to this bug. Also unref all the used objects from various
lists that WebKit returns after they are used.
web-extensions/e-composer-private-dom-functions.c | 3 +
web-extensions/e-dom-utils.c | 21 +++++-
.../e-html-editor-cell-dialog-dom-functions.c | 4 +-
.../e-html-editor-selection-dom-functions.c | 47 +++++++++---
web-extensions/e-html-editor-view-dom-functions.c | 76 ++++++++++++++++---
web-extensions/e-msg-composer-dom-functions.c | 2 +
6 files changed, 124 insertions(+), 29 deletions(-)
---
diff --git a/web-extensions/e-composer-private-dom-functions.c
b/web-extensions/e-composer-private-dom-functions.c
index d549867..2d29412 100644
--- a/web-extensions/e-composer-private-dom-functions.c
+++ b/web-extensions/e-composer-private-dom-functions.c
@@ -73,11 +73,13 @@ dom_remove_signatures (WebKitDOMDocument *document,
}
/* We have to remove the div containing the span with signature */
remove_node (wrapper);
+ g_object_unref (wrapper);
g_free (id);
break;
}
+ g_object_unref (wrapper);
g_free (id);
}
g_object_unref (signatures);
@@ -203,6 +205,7 @@ composer_move_caret (WebKitDOMDocument *document,
} else
element = WEBKIT_DOM_ELEMENT (body);
+ g_object_unref (list);
goto move_caret;
}
diff --git a/web-extensions/e-dom-utils.c b/web-extensions/e-dom-utils.c
index e94693c..0c6928b 100644
--- a/web-extensions/e-dom-utils.c
+++ b/web-extensions/e-dom-utils.c
@@ -210,6 +210,7 @@ get_frame_selection_html (WebKitDOMElement *iframe)
text = get_frame_selection_html (
WEBKIT_DOM_ELEMENT (node));
+ g_object_unref (node);
if (text != NULL) {
g_object_unref (frames);
return text;
@@ -242,8 +243,11 @@ e_dom_utils_get_selection_content_html (WebKitDOMDocument *document)
text = get_frame_selection_html (
WEBKIT_DOM_ELEMENT (node));
- if (text != NULL)
+ g_object_unref (node);
+ if (text != NULL) {
+ g_object_unref (frames);
return text;
+ }
}
g_object_unref (frames);
@@ -287,6 +291,7 @@ get_frame_selection_content_text (WebKitDOMElement *iframe)
text = get_frame_selection_content_text (
WEBKIT_DOM_ELEMENT (node));
+ g_object_unref (node);
if (text != NULL) {
g_object_unref (frames);
return text;
@@ -315,6 +320,7 @@ e_dom_utils_get_selection_content_text (WebKitDOMDocument *document)
text = get_frame_selection_content_text (
WEBKIT_DOM_ELEMENT (node));
+ g_object_unref (node);
if (text != NULL) {
g_object_unref (frames);
return text;
@@ -388,7 +394,7 @@ add_css_rule_into_style_sheet (WebKitDOMDocument *document,
rule = webkit_dom_css_rule_list_item (rules_list, ii);
if (!WEBKIT_DOM_IS_CSS_RULE (rule))
- continue;
+ goto next;
rule_text = webkit_dom_css_rule_get_css_text (rule);
@@ -396,7 +402,7 @@ add_css_rule_into_style_sheet (WebKitDOMDocument *document,
selector_end = g_strstr_len (rule_text, -1, " {");
if (!selector_end) {
g_free (rule_text);
- continue;
+ goto next;
}
rule_selector =
@@ -411,11 +417,16 @@ add_css_rule_into_style_sheet (WebKitDOMDocument *document,
WEBKIT_DOM_CSS_STYLE_SHEET (sheet),
ii, NULL);
length--;
+ g_free (rule_selector);
+ g_free (rule_text);
+ g_object_unref (rule);
break;
}
g_free (rule_selector);
+ next:
g_free (rule_text);
+ g_object_unref (rule);
}
g_object_unref (rules_list);
@@ -462,6 +473,7 @@ add_css_rule_into_style_sheet_recursive (WebKitDOMDocument *document,
style_sheet_id,
selector,
style);
+ g_object_unref (node);
}
g_object_unref (frames);
}
@@ -658,6 +670,7 @@ e_dom_utils_bind_dom (WebKitDOMDocument *document,
webkit_dom_event_target_add_event_listener (
WEBKIT_DOM_EVENT_TARGET (node), event,
G_CALLBACK (callback), FALSE, user_data);
+ g_object_unref (node);
}
g_object_unref (nodes);
}
@@ -844,6 +857,7 @@ e_dom_utils_find_element_by_selector (WebKitDOMDocument *document,
element = e_dom_utils_find_element_by_id (content_document, selector);
+ g_object_unref (iframe);
if (element != NULL) {
g_object_unref (frames);
return element;
@@ -886,6 +900,7 @@ e_dom_utils_find_element_by_id (WebKitDOMDocument *document,
element = e_dom_utils_find_element_by_id (content_document, id);
+ g_object_unref (iframe);
if (element != NULL) {
g_object_unref (frames);
return element;
diff --git a/web-extensions/e-html-editor-cell-dialog-dom-functions.c
b/web-extensions/e-html-editor-cell-dialog-dom-functions.c
index d23a7c1..9404fa9 100644
--- a/web-extensions/e-html-editor-cell-dialog-dom-functions.c
+++ b/web-extensions/e-html-editor-cell-dialog-dom-functions.c
@@ -200,7 +200,9 @@ cell_set_header_style (WebKitDOMHTMLTableCellElement *cell,
node = webkit_dom_node_list_item (nodes, ii);
webkit_dom_node_append_child (
WEBKIT_DOM_NODE (new_cell), node, NULL);
+ g_object_unref (node);
}
+ g_object_unref (nodes);
/* Insert new_cell before cell and remove cell */
webkit_dom_node_insert_before (
@@ -213,8 +215,6 @@ cell_set_header_style (WebKitDOMHTMLTableCellElement *cell,
webkit_dom_node_get_parent_node (WEBKIT_DOM_NODE (cell)),
WEBKIT_DOM_NODE (cell), NULL);
- g_object_unref (nodes);
-
g_free (tagname);
}
diff --git a/web-extensions/e-html-editor-selection-dom-functions.c
b/web-extensions/e-html-editor-selection-dom-functions.c
index f292d26..698e2b4 100644
--- a/web-extensions/e-html-editor-selection-dom-functions.c
+++ b/web-extensions/e-html-editor-selection-dom-functions.c
@@ -1094,8 +1094,10 @@ dom_selection_indent (WebKitDOMDocument *document,
after_selection_start = webkit_dom_node_contains (
block_to_process,
WEBKIT_DOM_NODE (selection_start_marker));
- if (!after_selection_start)
+ if (!after_selection_start) {
+ g_object_unref (block_to_process);
continue;
+ }
}
level = get_indentation_level (
@@ -1103,11 +1105,14 @@ dom_selection_indent (WebKitDOMDocument *document,
final_width = word_wrap_length - SPACES_PER_INDENTATION * (level + 1);
if (final_width < MINIMAL_PARAGRAPH_WIDTH &&
- !e_html_editor_web_extension_get_html_mode (extension))
+ !e_html_editor_web_extension_get_html_mode (extension)) {
+ g_object_unref (block_to_process);
continue;
+ }
indent_block (document, extension, block_to_process, final_width);
+ g_object_unref (block_to_process);
if (after_selection_end)
break;
}
@@ -1397,12 +1402,15 @@ dom_selection_unindent (WebKitDOMDocument *document,
after_selection_start = webkit_dom_node_contains (
block_to_process,
WEBKIT_DOM_NODE (selection_start_marker));
- if (!after_selection_start)
+ if (!after_selection_start) {
+ g_object_unref (block_to_process);
continue;
+ }
}
unindent_block (document, extension, block_to_process);
+ g_object_unref (block_to_process);
if (after_selection_end)
break;
}
@@ -1997,7 +2005,6 @@ wrap_lines (WebKitDOMDocument *document,
WebKitDOMNode *paragraph_clone;
WebKitDOMDocumentFragment *fragment;
WebKitDOMElement *element;
- WebKitDOMNodeList *wrap_br;
gboolean has_selection;
gint len, ii, br_count;
gulong length_left;
@@ -2008,6 +2015,7 @@ wrap_lines (WebKitDOMDocument *document,
if (has_selection) {
const gchar *selection_content;
+ WebKitDOMNodeList *wrap_br;
selection_content = e_html_editor_web_extension_get_selection_text (extension);
paragraph_char_count = g_utf8_strlen (selection_content, -1);
@@ -2024,8 +2032,11 @@ wrap_lines (WebKitDOMDocument *document,
NULL);
br_count = webkit_dom_node_list_get_length (wrap_br);
/* And remove them */
- for (ii = 0; ii < br_count; ii++)
- remove_node (webkit_dom_node_list_item (wrap_br, ii));
+ for (ii = 0; ii < br_count; ii++) {
+ WebKitDOMNode *node = webkit_dom_node_list_item (wrap_br, ii);
+ remove_node (node);
+ g_object_unref (node);
+ }
g_object_unref (wrap_br);
} else {
if (!webkit_dom_node_has_child_nodes (paragraph))
@@ -2414,8 +2425,11 @@ dom_remove_wrapping_from_element (WebKitDOMElement *element)
list = webkit_dom_element_query_selector_all (
element, "br.-x-evo-wrap-br", NULL);
length = webkit_dom_node_list_get_length (list);
- for (ii = 0; ii < length; ii++)
- remove_node (webkit_dom_node_list_item (list, ii));
+ for (ii = 0; ii < length; ii++) {
+ WebKitDOMNode *node = webkit_dom_node_list_item (list, ii);
+ remove_node (node);
+ g_object_unref (node);
+ }
webkit_dom_node_normalize (WEBKIT_DOM_NODE (element));
@@ -2431,8 +2445,11 @@ dom_remove_quoting_from_element (WebKitDOMElement *element)
list = webkit_dom_element_query_selector_all (
element, "span.-x-evo-quoted", NULL);
length = webkit_dom_node_list_get_length (list);
- for (ii = 0; ii < length; ii++)
- remove_node (webkit_dom_node_list_item (list, ii));
+ for (ii = 0; ii < length; ii++) {
+ WebKitDOMNode *node = webkit_dom_node_list_item (list, ii);
+ remove_node (node);
+ g_object_unref (node);
+ }
g_object_unref (list);
list = webkit_dom_element_query_selector_all (
@@ -2450,14 +2467,18 @@ dom_remove_quoting_from_element (WebKitDOMElement *element)
NULL);
remove_node (node);
+ g_object_unref (node);
}
g_object_unref (list);
list = webkit_dom_element_query_selector_all (
element, "br.-x-evo-temp-br", NULL);
length = webkit_dom_node_list_get_length (list);
- for (ii = 0; ii < length; ii++)
- remove_node (webkit_dom_node_list_item (list, ii));
+ for (ii = 0; ii < length; ii++) {
+ WebKitDOMNode *node = webkit_dom_node_list_item (list, ii);
+ remove_node (node);
+ g_object_unref (node);
+ }
g_object_unref (list);
webkit_dom_node_normalize (WEBKIT_DOM_NODE (element));
@@ -2684,6 +2705,7 @@ dom_wrap_paragraphs_in_document (WebKitDOMDocument *document,
dom_wrap_paragraph_length (
document, extension, WEBKIT_DOM_ELEMENT (node), word_wrap_length - quote);
}
+ g_object_unref (node);
}
g_object_unref (list);
}
@@ -4825,6 +4847,7 @@ dom_selection_set_alignment (WebKitDOMDocument *document,
after_selection_end = webkit_dom_node_contains (
item, WEBKIT_DOM_NODE (selection_end_marker));
+ g_object_unref (item);
if (after_selection_end)
break;
}
diff --git a/web-extensions/e-html-editor-view-dom-functions.c
b/web-extensions/e-html-editor-view-dom-functions.c
index ddccdad..b80d326 100644
--- a/web-extensions/e-html-editor-view-dom-functions.c
+++ b/web-extensions/e-html-editor-view-dom-functions.c
@@ -495,6 +495,7 @@ quote_plain_text_element_after_wrapping (WebKitDOMDocument *document,
webkit_dom_node_clone_node (quoted_node, TRUE),
webkit_dom_node_get_next_sibling (br),
NULL);
+ g_object_unref (br);
}
g_object_unref (list);
@@ -780,6 +781,7 @@ move_elements_to_body (WebKitDOMDocument *document)
}
remove_node (node);
+ g_object_unref (node);
}
g_object_unref (list);
@@ -803,6 +805,7 @@ move_elements_to_body (WebKitDOMDocument *document)
NULL);
remove_node (node);
+ g_object_unref (node);
}
g_object_unref (list);
}
@@ -822,6 +825,7 @@ repair_gmail_blockquotes (WebKitDOMDocument *document)
webkit_dom_element_remove_attribute (WEBKIT_DOM_ELEMENT (node), "class");
webkit_dom_element_remove_attribute (WEBKIT_DOM_ELEMENT (node), "style");
webkit_dom_element_set_attribute (WEBKIT_DOM_ELEMENT (node), "type", "cite", NULL);
+ g_object_unref (node);
}
g_object_unref (list);
}
@@ -1566,6 +1570,7 @@ mark_node_as_paragraph_after_ending_list (WebKitDOMDocument *document,
webkit_dom_node_list_item (list, ii));
dom_set_paragraph_style (document, extension, WEBKIT_DOM_ELEMENT (node), -1, 0, "");
+ g_object_unref (node);
}
g_object_unref (list);
}
@@ -1911,8 +1916,11 @@ remove_empty_blocks (WebKitDOMDocument *document)
document, "blockquote[type=cite] > :empty", NULL);
length = webkit_dom_node_list_get_length (list);
- for (ii = 0; ii < length; ii++)
- remove_node (webkit_dom_node_list_item (list, ii));
+ for (ii = 0; ii < length; ii++) {
+ WebKitDOMNode *node = webkit_dom_node_list_item (list, ii);
+ remove_node (node);
+ g_object_unref (node);
+ }
g_object_unref (list);
}
@@ -2862,8 +2870,12 @@ dom_quote_plain_text_element (WebKitDOMDocument *document,
list = webkit_dom_element_query_selector_all (
WEBKIT_DOM_ELEMENT (element_clone), "span.-x-evo-quoted", NULL);
length = webkit_dom_node_list_get_length (list);
- for (ii = 0; ii < length; ii++)
- remove_node (webkit_dom_node_list_item (list, ii));
+ for (ii = 0; ii < length; ii++) {
+ WebKitDOMNode *node = webkit_dom_node_list_item (list, ii);
+ remove_node (node);
+ g_object_unref (node);
+ }
+ g_object_unref (list);
webkit_dom_node_normalize (element_clone);
quote_plain_text_recursive (
@@ -2882,7 +2894,6 @@ dom_quote_plain_text_element (WebKitDOMDocument *document,
WEBKIT_DOM_NODE (element),
NULL);
- g_object_unref (list);
return WEBKIT_DOM_ELEMENT (element_clone);
}
@@ -2935,6 +2946,7 @@ dom_quote_plain_text (WebKitDOMDocument *document)
if (WEBKIT_DOM_IS_HTML_BR_ELEMENT (child))
remove_node (child);
}
+ g_object_unref (blockquote);
}
g_object_unref (list);
@@ -2954,6 +2966,7 @@ dom_quote_plain_text (WebKitDOMDocument *document)
webkit_dom_element_set_attribute (
WEBKIT_DOM_ELEMENT (body_clone), name, value, NULL);
+ g_object_unref (node);
g_free (name);
g_free (value);
}
@@ -2995,6 +3008,7 @@ dom_dequote_plain_text (WebKitDOMDocument *document)
element_remove_class (element, "-x-evo-plaintext-quoted");
dom_remove_quoting_from_element (element);
}
+ g_object_unref (element);
}
g_object_unref (paragraphs);
}
@@ -3604,6 +3618,7 @@ quote_plain_text_elements_after_wrapping_in_document (WebKitDOMDocument *documen
citation_level = get_citation_level (child, TRUE);
quote_plain_text_element_after_wrapping (
document, WEBKIT_DOM_ELEMENT (child), citation_level);
+ g_object_unref (child);
}
g_object_unref (list);
}
@@ -3626,6 +3641,7 @@ clear_attributes (WebKitDOMDocument *document)
webkit_dom_element_remove_attribute_node (
document_element, WEBKIT_DOM_ATTR (node), NULL);
+ g_object_unref (node);
}
g_object_unref (attributes);
@@ -3651,6 +3667,7 @@ clear_attributes (WebKitDOMDocument *document)
WEBKIT_DOM_ATTR (node),
NULL);
+ g_object_unref (node);
g_free (name);
}
g_object_unref (attributes);
@@ -3726,8 +3743,11 @@ dom_convert_content (WebKitDOMDocument *document,
list = webkit_dom_document_query_selector_all (
document, ".-x-evo-paragraph", NULL);
length = webkit_dom_node_list_get_length (list);
- for (ii = 0; ii < length; ii++)
- remove_node (webkit_dom_node_list_item (list, ii));
+ for (ii = 0; ii < length; ii++) {
+ WebKitDOMNode *node = webkit_dom_node_list_item (list, ii);
+ remove_node (node);
+ g_object_unref (node);
+ }
g_object_unref (list);
/* Insert the paragraph where the caret will be. */
@@ -3798,6 +3818,7 @@ dom_convert_content (WebKitDOMDocument *document,
NULL);
remove_node (node);
+ g_object_unref (node);
}
g_object_unref (list);
@@ -4334,6 +4355,7 @@ process_blockquote (WebKitDOMElement *blockquote)
WEBKIT_DOM_HTML_ELEMENT (quoted_node), text_content, NULL);
g_free (text_content);
+ g_object_unref (quoted_node);
}
g_object_unref (list);
@@ -4351,6 +4373,7 @@ process_blockquote (WebKitDOMElement *blockquote)
WEBKIT_DOM_HTML_ELEMENT (quoted_node), text_content, NULL);
g_free (text_content);
+ g_object_unref (quoted_node);
}
g_object_unref (list);
@@ -4788,6 +4811,7 @@ process_elements (EHTMLEditorWebExtension *extension,
g_free (name);
g_free (value);
+ g_object_unref (node);
}
g_string_append (buffer, ">");
g_object_unref (attributes);
@@ -5193,6 +5217,7 @@ process_elements (EHTMLEditorWebExtension *extension,
if (webkit_dom_node_has_child_nodes (child) && !skip_node)
process_elements (
extension, child, to_html, changing_mode, to_plain_text, buffer);
+ g_object_unref (child);
}
if (to_plain_text && (
@@ -5239,8 +5264,11 @@ remove_wrapping_from_document (WebKitDOMDocument *document)
list = webkit_dom_document_query_selector_all (document, "br.-x-evo-wrap-br", NULL);
length = webkit_dom_node_list_get_length (list);
- for (ii = 0; ii < length; ii++)
- remove_node (webkit_dom_node_list_item (list, ii));
+ for (ii = 0; ii < length; ii++) {
+ WebKitDOMNode *node = webkit_dom_node_list_item (list, ii);
+ remove_node (node);
+ g_object_unref (node);
+ }
g_object_unref (list);
}
@@ -5269,6 +5297,7 @@ remove_background_images_in_document (WebKitDOMDocument *document)
webkit_dom_node_list_item (elements, ii));
remove_image_attributes_from_element (element);
+ g_object_unref (element);
}
g_object_unref (elements);
@@ -5284,8 +5313,11 @@ remove_images_in_element (WebKitDOMElement *element)
element, "img:not(.-x-evo-smiley-img)", NULL);
length = webkit_dom_node_list_get_length (images);
- for (ii = 0; ii < length; ii++)
- remove_node (webkit_dom_node_list_item (images, ii));
+ for (ii = 0; ii < length; ii++) {
+ WebKitDOMNode *node = webkit_dom_node_list_item (images, ii);
+ remove_node (node);
+ g_object_unref (node);
+ }
g_object_unref (images);
}
@@ -5330,6 +5362,7 @@ toggle_smileys (WebKitDOMDocument *document,
element_add_class (parent, "-x-evo-resizable-wrapper");
else
element_remove_class (parent, "-x-evo-resizable-wrapper");
+ g_object_unref (img);
}
g_object_unref (smileys);
@@ -5397,6 +5430,7 @@ toggle_paragraphs_style_in_element (WebKitDOMDocument *document,
g_free (style);
}
}
+ g_object_unref (node);
}
g_object_unref (paragraphs);
}
@@ -5672,6 +5706,7 @@ dom_process_content_for_plain_text (WebKitDOMDocument *document,
dom_wrap_paragraph (
document, extension, WEBKIT_DOM_ELEMENT (paragraph));
}
+ g_object_unref (paragraph);
}
g_object_unref (paragraphs);
@@ -5686,6 +5721,7 @@ dom_process_content_for_plain_text (WebKitDOMDocument *document,
WebKitDOMNode *parent = webkit_dom_node_get_parent_node (node);
remove_node (node);
+ g_object_unref (node);
webkit_dom_node_normalize (parent);
}
g_object_unref (paragraphs);
@@ -5721,6 +5757,7 @@ restore_image (WebKitDOMDocument *document,
webkit_dom_node_list_item (list, ii));
webkit_dom_element_set_attribute (element, "background", element_src, NULL);
+ g_object_unref (element);
}
g_free (selector);
g_object_unref (list);
@@ -5733,6 +5770,7 @@ restore_image (WebKitDOMDocument *document,
webkit_dom_node_list_item (list, ii));
webkit_dom_element_set_attribute (element, "src", element_src, NULL);
+ g_object_unref (element);
}
g_free (selector);
g_object_unref (list);
@@ -5856,6 +5894,8 @@ wrap_paragraphs_in_quoted_content (WebKitDOMDocument *document,
paragraph = webkit_dom_node_list_item (paragraphs, ii);
dom_wrap_paragraph (document, extension, WEBKIT_DOM_ELEMENT (paragraph));
+
+ g_object_unref (paragraph);
}
g_object_unref (paragraphs);
}
@@ -5908,6 +5948,7 @@ change_cid_images_src_to_base64 (WebKitDOMDocument *document,
WebKitDOMNode *node = webkit_dom_node_list_item (list, ii);
set_base64_to_element_attribute (inline_images, WEBKIT_DOM_ELEMENT (node), "src");
+ g_object_unref (node);
}
g_object_unref (list);
@@ -5934,12 +5975,14 @@ change_cid_images_src_to_base64 (WebKitDOMDocument *document,
set_base64_to_element_attribute (
inline_images, WEBKIT_DOM_ELEMENT (node), attribute_ns);
+ g_object_unref (node);
}
g_object_unref (list);
g_free (attribute_ns);
g_free (selector);
}
+ g_object_unref (node);
g_free (name);
}
g_object_unref (attributes);
@@ -5952,6 +5995,7 @@ change_cid_images_src_to_base64 (WebKitDOMDocument *document,
set_base64_to_element_attribute (
inline_images, WEBKIT_DOM_ELEMENT (node), "background");
+ g_object_unref (node);
}
g_object_unref (list);
g_hash_table_remove_all (inline_images);
@@ -6037,8 +6081,10 @@ dom_get_inline_images_data (WebKitDOMDocument *document,
list = webkit_dom_document_query_selector_all (document, "img[data-inline]", NULL);
length = webkit_dom_node_list_get_length (list);
- if (length == 0)
+ if (length == 0) {
+ g_object_unref (list);
goto background;
+ }
builder = g_variant_builder_new (G_VARIANT_TYPE ("asss"));
@@ -6068,6 +6114,7 @@ dom_get_inline_images_data (WebKitDOMDocument *document,
}
webkit_dom_element_set_attribute (
WEBKIT_DOM_ELEMENT (node), "src", cid, NULL);
+ g_object_unref (node);
g_free (cid);
}
g_object_unref (list);
@@ -6110,6 +6157,7 @@ dom_get_inline_images_data (WebKitDOMDocument *document,
WEBKIT_DOM_ELEMENT (node), "background", cid, NULL);
}
g_free (cid);
+ g_object_unref (node);
}
out:
g_object_unref (list);
@@ -6462,12 +6510,14 @@ dom_get_caret_position (WebKitDOMDocument *document)
if (webkit_dom_node_is_same_node (
node, webkit_dom_dom_selection_get_anchor_node (selection))) {
+ g_object_unref (node);
break;
} else if (WEBKIT_DOM_IS_TEXT (node)) {
gchar *text = webkit_dom_node_get_text_content (node);
range_count += strlen (text);
g_free (text);
}
+ g_object_unref (node);
}
g_object_unref (nodes);
@@ -6501,7 +6551,9 @@ dom_drag_and_drop_end (WebKitDOMDocument *document,
NULL);
webkit_dom_node_append_child (WEBKIT_DOM_NODE (element), node, NULL);
+ g_object_unref (node);
}
+ g_object_unref (list);
/* When the image is moved the new selection is created after after it, so
* lets collapse the selection to have the caret right after the image. */
diff --git a/web-extensions/e-msg-composer-dom-functions.c b/web-extensions/e-msg-composer-dom-functions.c
index 14807ff..3a3d33d 100644
--- a/web-extensions/e-msg-composer-dom-functions.c
+++ b/web-extensions/e-msg-composer-dom-functions.c
@@ -40,9 +40,11 @@ dom_get_active_signature_uid (WebKitDOMDocument *document)
uid = webkit_dom_element_get_attribute (
WEBKIT_DOM_ELEMENT (node), "name");
g_free (id);
+ g_object_unref (node);
break;
}
g_free (id);
+ g_object_unref (node);
}
g_object_unref (nodes);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]