[evolution/wip/webkit2] ExternalEditor - Fix leaks of WebKit objects
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution/wip/webkit2] ExternalEditor - Fix leaks of WebKit objects
- Date: Thu, 25 Feb 2016 14:31:18 +0000 (UTC)
commit 37cecbacd72111e887e240b4977249f6ab51a05b
Author: Tomas Popela <tpopela redhat com>
Date: Thu Feb 25 15:30:59 2016 +0100
ExternalEditor - Fix leaks of WebKit objects
.../composer/e-html-editor-view-dom-functions.c | 29 +++++++++++++-------
1 files changed, 19 insertions(+), 10 deletions(-)
---
diff --git a/web-extensions/composer/e-html-editor-view-dom-functions.c
b/web-extensions/composer/e-html-editor-view-dom-functions.c
index f59bb49..e463edd 100644
--- a/web-extensions/composer/e-html-editor-view-dom-functions.c
+++ b/web-extensions/composer/e-html-editor-view-dom-functions.c
@@ -8067,32 +8067,35 @@ dom_process_content_after_mode_change (WebKitDOMDocument *document,
gint
dom_get_caret_position (WebKitDOMDocument *document)
{
- WebKitDOMDOMWindow *window;
- WebKitDOMDOMSelection *selection;
+ WebKitDOMDOMWindow *dom_window;
+ WebKitDOMDOMSelection *dom_selection;
WebKitDOMRange *range;
- gint range_count;
+ gint range_count, ret_val;
WebKitDOMNodeList *nodes;
gulong ii, length;
- window = webkit_dom_document_get_default_view (document);
- selection = webkit_dom_dom_window_get_selection (window);
+ dom_window = webkit_dom_document_get_default_view (document);
+ dom_selection = webkit_dom_dom_window_get_selection (dom_window);
+ g_object_unref (dom_window);
- if (webkit_dom_dom_selection_get_range_count (selection) < 1)
+ if (webkit_dom_dom_selection_get_range_count (dom_selection) < 1) {
+ g_object_unref (dom_selection);
return 0;
+ }
- range = webkit_dom_dom_selection_get_range_at (selection, 0, NULL);
+ range = webkit_dom_dom_selection_get_range_at (dom_selection, 0, NULL);
range_count = 0;
nodes = webkit_dom_node_get_child_nodes (
webkit_dom_node_get_parent_node (
webkit_dom_dom_selection_get_anchor_node (
- selection)));
+ dom_selection)));
length = webkit_dom_node_list_get_length (nodes);
for (ii = 0; ii < length; ii++) {
WebKitDOMNode *node;
node = webkit_dom_node_list_item (nodes, ii);
if (webkit_dom_node_is_same_node (
- node, webkit_dom_dom_selection_get_anchor_node (selection))) {
+ node, webkit_dom_dom_selection_get_anchor_node (dom_selection))) {
g_object_unref (node);
break;
@@ -8105,7 +8108,13 @@ dom_get_caret_position (WebKitDOMDocument *document)
}
g_object_unref (nodes);
- return webkit_dom_range_get_start_offset (range, NULL) + range_count;
+
+ ret_val = webkit_dom_range_get_start_offset (range, NULL) + range_count;
+
+ g_object_unref (range);
+ g_object_unref (dom_selection);
+
+ return ret_val;
}
void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]