summaryrefslogtreecommitdiff
path: root/src/html/html_tablecell_element.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/html/html_tablecell_element.c')
-rw-r--r--src/html/html_tablecell_element.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/html/html_tablecell_element.c b/src/html/html_tablecell_element.c
index f8eaf01..cc596c1 100644
--- a/src/html/html_tablecell_element.c
+++ b/src/html/html_tablecell_element.c
@@ -191,6 +191,7 @@ dom_exception dom_html_table_cell_element_get_cell_index(
}
n = n->parent;
}
+ dom_node_internal *root = n;
while(n != NULL) {
if(n == (dom_node_internal *)table_cell) {
break;
@@ -207,18 +208,16 @@ dom_exception dom_html_table_cell_element_get_cell_index(
} else {
/* No children and siblings */
struct dom_node_internal *parent = n->parent;
-
- while (parent !=NULL) {
- if(n == parent->last_child) {
- n = parent;
- parent = parent->parent;
- } else {
- break;
- }
-
+ while (n == parent->last_child &&
+ n != root) {
+ n = parent;
+ parent = parent->parent;
}
- if(parent == NULL) {
+
+ if(n == root) {
n = NULL;
+ } else {
+ n = n->next;
}
}
}