Gitweb links:

...log 
http://git.netsurf-browser.org/libdom.git/shortlog/9bb1399bac063e4daac119fc636147cbab066c9d
...commit 
http://git.netsurf-browser.org/libdom.git/commit/9bb1399bac063e4daac119fc636147cbab066c9d
...tree 
http://git.netsurf-browser.org/libdom.git/tree/9bb1399bac063e4daac119fc636147cbab066c9d

The branch, master has been updated
       via  9bb1399bac063e4daac119fc636147cbab066c9d (commit)
      from  e437bb9126df49de815a06ff86edf4d6c4d252ac (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commitdiff 
http://git.netsurf-browser.org/libdom.git/commit/?id=9bb1399bac063e4daac119fc636147cbab066c9d
commit 9bb1399bac063e4daac119fc636147cbab066c9d
Author: Michael Drake <[email protected]>
Commit: Michael Drake <[email protected]>

    Fix libdom departures from "always return a ref" in public API.
    
    The DOM test code expects nodes returned by libdom APIs to always be
    reffed.  So this change refs them.
    
    The remaining leaks detected by address sanitiser in the dom test
    suite are a problem with the DOM test generator:
    
    * For test_level1_html_HTMLSelectElement08, the problem is that in the
      while loop, it doesn't unref `voption` at the end of the loop, in the
      test code.
    
    * For test_level1_html_HTMLTableElement07, the problem is the
      while loop doesn't unref `vrow` at the end of the loop in the
      test code.
    
    * For test_level1_html_HTMLTableElement09, it's the same for
      variable, `vbodies`.

diff --git a/src/html/html_document.c b/src/html/html_document.c
index 9f53295..50a15a7 100644
--- a/src/html/html_document.c
+++ b/src/html/html_document.c
@@ -1144,7 +1144,6 @@ dom_exception 
_dom_html_document_get_body(dom_html_document *doc,
                }
 
                *body = (dom_html_element *)node;
-               dom_node_unref(node);
        }
 
        return exc;
diff --git a/src/html/html_fieldset_element.c b/src/html/html_fieldset_element.c
index c869822..fe44e74 100644
--- a/src/html/html_fieldset_element.c
+++ b/src/html/html_fieldset_element.c
@@ -170,7 +170,7 @@ dom_exception dom_html_field_set_element_get_form(
        }
 
        if (form_tmp != NULL) {
-               *form = (dom_html_form_element *) form_tmp;
+               *form = (dom_html_form_element *) dom_node_ref(form_tmp);
                return DOM_NO_ERR;
        }
 
diff --git a/src/html/html_label_element.c b/src/html/html_label_element.c
index 3864cc4..777144a 100644
--- a/src/html/html_label_element.c
+++ b/src/html/html_label_element.c
@@ -167,7 +167,7 @@ dom_exception dom_html_label_element_get_form(
        }
 
        if (form_tmp != NULL) {
-               *form = (dom_html_form_element *) form_tmp;
+               *form = (dom_html_form_element *) dom_node_ref(form_tmp);
                return DOM_NO_ERR;
        }
 
diff --git a/src/html/html_object_element.c b/src/html/html_object_element.c
index e926aef..b51e3a0 100644
--- a/src/html/html_object_element.c
+++ b/src/html/html_object_element.c
@@ -274,7 +274,7 @@ dom_exception dom_html_object_element_get_form(
        }
 
        if (form_tmp != NULL) {
-               *form = (dom_html_form_element *) form_tmp;
+               *form = (dom_html_form_element *) dom_node_ref(form_tmp);
                return DOM_NO_ERR;
        }
 


-----------------------------------------------------------------------

Summary of changes:
 src/html/html_document.c         |    1 -
 src/html/html_fieldset_element.c |    2 +-
 src/html/html_label_element.c    |    2 +-
 src/html/html_object_element.c   |    2 +-
 4 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/html/html_document.c b/src/html/html_document.c
index 9f53295..50a15a7 100644
--- a/src/html/html_document.c
+++ b/src/html/html_document.c
@@ -1144,7 +1144,6 @@ dom_exception 
_dom_html_document_get_body(dom_html_document *doc,
                }
 
                *body = (dom_html_element *)node;
-               dom_node_unref(node);
        }
 
        return exc;
diff --git a/src/html/html_fieldset_element.c b/src/html/html_fieldset_element.c
index c869822..fe44e74 100644
--- a/src/html/html_fieldset_element.c
+++ b/src/html/html_fieldset_element.c
@@ -170,7 +170,7 @@ dom_exception dom_html_field_set_element_get_form(
        }
 
        if (form_tmp != NULL) {
-               *form = (dom_html_form_element *) form_tmp;
+               *form = (dom_html_form_element *) dom_node_ref(form_tmp);
                return DOM_NO_ERR;
        }
 
diff --git a/src/html/html_label_element.c b/src/html/html_label_element.c
index 3864cc4..777144a 100644
--- a/src/html/html_label_element.c
+++ b/src/html/html_label_element.c
@@ -167,7 +167,7 @@ dom_exception dom_html_label_element_get_form(
        }
 
        if (form_tmp != NULL) {
-               *form = (dom_html_form_element *) form_tmp;
+               *form = (dom_html_form_element *) dom_node_ref(form_tmp);
                return DOM_NO_ERR;
        }
 
diff --git a/src/html/html_object_element.c b/src/html/html_object_element.c
index e926aef..b51e3a0 100644
--- a/src/html/html_object_element.c
+++ b/src/html/html_object_element.c
@@ -274,7 +274,7 @@ dom_exception dom_html_object_element_get_form(
        }
 
        if (form_tmp != NULL) {
-               *form = (dom_html_form_element *) form_tmp;
+               *form = (dom_html_form_element *) dom_node_ref(form_tmp);
                return DOM_NO_ERR;
        }
 


-- 
Document Object Model library

_______________________________________________
netsurf-commits mailing list
[email protected]
http://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/netsurf-commits-netsurf-browser.org

Reply via email to