[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[8297] parsetexi free extra_node_spec_array
From: |
gavinsmith0123 |
Subject: |
[8297] parsetexi free extra_node_spec_array |
Date: |
Wed, 17 Oct 2018 05:36:09 -0400 (EDT) |
Revision: 8297
http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=8297
Author: gavin
Date: 2018-10-17 05:36:09 -0400 (Wed, 17 Oct 2018)
Log Message:
-----------
parsetexi free extra_node_spec_array
Modified Paths:
--------------
trunk/tp/Texinfo/XS/parsetexi/end_line.c
trunk/tp/Texinfo/XS/parsetexi/tree.c
Modified: trunk/tp/Texinfo/XS/parsetexi/end_line.c
===================================================================
--- trunk/tp/Texinfo/XS/parsetexi/end_line.c 2018-10-16 22:14:32 UTC (rev
8296)
+++ trunk/tp/Texinfo/XS/parsetexi/end_line.c 2018-10-17 09:36:09 UTC (rev
8297)
@@ -1751,9 +1751,24 @@
if (nodes_manuals[0])
{
- add_extra_contents (current, "node_content",
- nodes_manuals[0]->node_content);
- register_label (current, nodes_manuals[0]->node_content);
+ ELEMENT *label = 0;
+ if (nodes_manuals[0]->node_content)
+ {
+ /* Copy the first 'node_content' array, to avoid the complication
+ of it being referenced in two different places.
+ This might be better with a separate function. */
+
+ label = new_element (0);
+ int i;
+
+ for (i = 0; i<nodes_manuals[0]->node_content->contents.number;
+ i++)
+ {
+ add_to_contents_as_array (label,
+ contents_child_by_index(nodes_manuals[0]->node_content, i));
+ }
+ }
+ register_label (current, label);
}
current_node = current;
Modified: trunk/tp/Texinfo/XS/parsetexi/tree.c
===================================================================
--- trunk/tp/Texinfo/XS/parsetexi/tree.c 2018-10-16 22:14:32 UTC (rev
8296)
+++ trunk/tp/Texinfo/XS/parsetexi/tree.c 2018-10-17 09:36:09 UTC (rev
8297)
@@ -99,6 +99,23 @@
free (nse);
break;
}
+ case extra_node_spec_array:
+ {
+ NODE_SPEC_EXTRA **array = (NODE_SPEC_EXTRA **) e->extra[i].value;
+ NODE_SPEC_EXTRA **nse;
+
+ for (nse = array; (*nse); nse++)
+ {
+ if ((*nse)->manual_content)
+ destroy_element ((*nse)->manual_content);
+ if ((*nse)->node_content)
+ destroy_element ((*nse)->node_content);
+ free (*nse);
+ /* FIXME: same problem as above */
+ }
+ free (array);
+ break;
+ }
case extra_float_type:
{
EXTRA_FLOAT_TYPE *eft = (EXTRA_FLOAT_TYPE *) e->extra[i].value;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [8297] parsetexi free extra_node_spec_array,
gavinsmith0123 <=