[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[8107] parsetexi free extra contents array
From: |
gavinsmith0123 |
Subject: |
[8107] parsetexi free extra contents array |
Date: |
Sat, 18 Aug 2018 12:40:38 -0400 (EDT) |
Revision: 8107
http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=8107
Author: gavin
Date: 2018-08-18 12:40:37 -0400 (Sat, 18 Aug 2018)
Log Message:
-----------
parsetexi free extra contents array
Modified Paths:
--------------
trunk/tp/Texinfo/XS/parsetexi/separator.c
trunk/tp/Texinfo/XS/parsetexi/tree.c
Modified: trunk/tp/Texinfo/XS/parsetexi/separator.c
===================================================================
--- trunk/tp/Texinfo/XS/parsetexi/separator.c 2018-08-18 15:30:58 UTC (rev
8106)
+++ trunk/tp/Texinfo/XS/parsetexi/separator.c 2018-08-18 16:40:37 UTC (rev
8107)
@@ -29,6 +29,8 @@
/* Add the contents of CURRENT as an element to the extra value with
key KEY, except that some "empty space" elements are removed. Used for
'block_command_line_contents' for the arguments to a block line command.
+TODO: This function should go away once we make the same change for
+"block commands" as were made for "brace commands".
*/
void
register_command_arg (ELEMENT *current, char *key)
@@ -650,13 +652,22 @@
while (k->value->contents.number > 0
&& !last_contents_child(k->value)) // ->contents.number == 0)
{
- ELEMENT *popped = pop_element_from_contents (k->value);
- if (popped)
- destroy_element (popped);
+ ELEMENT *array = pop_element_from_contents (k->value);
+ if (array)
+ {
+ int j;
+ for (j = 0 ; j < array->contents.number; j++)
+ {
+ if (array->contents.list[j])
+ destroy_element (array->contents.list[j]);
+ }
+ destroy_element (array);
+ }
}
if (k->value->contents.number == 0)
{
+ destroy_element (k->value);
k->key = "";
k->type = extra_deleted;
}
Modified: trunk/tp/Texinfo/XS/parsetexi/tree.c
===================================================================
--- trunk/tp/Texinfo/XS/parsetexi/tree.c 2018-08-18 15:30:58 UTC (rev
8106)
+++ trunk/tp/Texinfo/XS/parsetexi/tree.c 2018-08-18 16:40:37 UTC (rev
8107)
@@ -85,8 +85,17 @@
destroy_element ((ELEMENT *) e->extra[i].value);
break;
case extra_element_contents_array:
- /* TODO */
+ {
+ int j;
+ ELEMENT *array = e->extra[i].value;
+ for (j = 0 ; j < array->contents.number; j++)
+ {
+ if (array->contents.list[j])
+ destroy_element (array->contents.list[j]);
+ }
+ destroy_element (array);
break;
+ }
case extra_node_spec:
{
NODE_SPEC_EXTRA *nse = (NODE_SPEC_EXTRA *) e->extra[i].value;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [8107] parsetexi free extra contents array,
gavinsmith0123 <=