[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[8106] parsetexi valgrind fixes
From: |
gavinsmith0123 |
Subject: |
[8106] parsetexi valgrind fixes |
Date: |
Sat, 18 Aug 2018 11:30:59 -0400 (EDT) |
Revision: 8106
http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=8106
Author: gavin
Date: 2018-08-18 11:30:58 -0400 (Sat, 18 Aug 2018)
Log Message:
-----------
parsetexi valgrind fixes
Modified Paths:
--------------
trunk/tp/Texinfo/XS/parsetexi/convert.c
trunk/tp/Texinfo/XS/parsetexi/end_line.c
trunk/tp/Texinfo/XS/parsetexi/separator.c
trunk/tp/Texinfo/XS/parsetexi/tree.c
Modified: trunk/tp/Texinfo/XS/parsetexi/convert.c
===================================================================
--- trunk/tp/Texinfo/XS/parsetexi/convert.c 2018-08-18 14:27:06 UTC (rev
8105)
+++ trunk/tp/Texinfo/XS/parsetexi/convert.c 2018-08-18 15:30:58 UTC (rev
8106)
@@ -184,7 +184,7 @@
TEXT result;
if (!e)
- return "";
+ return strdup ("");
text_init (&result);
convert_to_texinfo_internal (e, &result);
return result.text;
Modified: trunk/tp/Texinfo/XS/parsetexi/end_line.c
===================================================================
--- trunk/tp/Texinfo/XS/parsetexi/end_line.c 2018-08-18 14:27:06 UTC (rev
8105)
+++ trunk/tp/Texinfo/XS/parsetexi/end_line.c 2018-08-18 15:30:58 UTC (rev
8106)
@@ -1043,7 +1043,7 @@
destroy_element (type_contents);
}
}
- eft->normalized = "";
+ eft->normalized = strdup ("");
add_extra_float_type (current, "type", eft);
return 0;
}
@@ -1185,11 +1185,9 @@
&& current->args.list[0]->contents.list[0]->type
== ET_empty_line_after_command)
{
- ELEMENT *e;
- e = current->args.list[0]->contents.list[0];
+ ELEMENT *e = remove_from_contents (current->args.list[0], 0);
insert_into_contents (current, e, 0);
- // TODO: Free lists?
- current->args.number = 0;
+ destroy_element (pop_element_from_args (current));
}
remove_empty_content_arguments (current);
Modified: trunk/tp/Texinfo/XS/parsetexi/separator.c
===================================================================
--- trunk/tp/Texinfo/XS/parsetexi/separator.c 2018-08-18 14:27:06 UTC (rev
8105)
+++ trunk/tp/Texinfo/XS/parsetexi/separator.c 2018-08-18 15:30:58 UTC (rev
8106)
@@ -649,7 +649,11 @@
while (k->value->contents.number > 0
&& !last_contents_child(k->value)) // ->contents.number == 0)
- pop_element_from_contents (k->value);
+ {
+ ELEMENT *popped = pop_element_from_contents (k->value);
+ if (popped)
+ destroy_element (popped);
+ }
if (k->value->contents.number == 0)
{
Modified: trunk/tp/Texinfo/XS/parsetexi/tree.c
===================================================================
--- trunk/tp/Texinfo/XS/parsetexi/tree.c 2018-08-18 14:27:06 UTC (rev
8105)
+++ trunk/tp/Texinfo/XS/parsetexi/tree.c 2018-08-18 15:30:58 UTC (rev
8106)
@@ -94,7 +94,27 @@
free_node_contents (nse->manual_content);
free_node_contents (nse->node_content);
free (nse);
+ break;
}
+ case extra_float_type:
+ {
+ EXTRA_FLOAT_TYPE *eft = (EXTRA_FLOAT_TYPE *) e->extra[i].value;
+ free (eft->normalized);
+
+ if (eft->content)
+ destroy_element (eft->content);
+ /* free_node_contents (eft->content); */
+ /* Big problem here. If we call free_node_contents to look for
+ 'route_not_in_tree' elements, the elements that *were* in
+ the tree may have already been freed via reset_parser. I don't
+ expect there to be 'route_not_in_tree' elements for
+ EXTRA_FLOAT_TYPE; however, it's a potential problem for
+ extra_node_spec above. The best solution would seem to get rid
+ of the need for any 'route_not_in_tree' elements. */
+
+ free (eft);
+ break;
+ }
default:
/* TODO: need to check if the element is in the main tree or not. */
break;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [8106] parsetexi valgrind fixes,
gavinsmith0123 <=