[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[8098] parsetexi fix some memory leaks
From: |
gavinsmith0123 |
Subject: |
[8098] parsetexi fix some memory leaks |
Date: |
Thu, 16 Aug 2018 14:05:23 -0400 (EDT) |
Revision: 8098
http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=8098
Author: gavin
Date: 2018-08-16 14:05:23 -0400 (Thu, 16 Aug 2018)
Log Message:
-----------
parsetexi fix some memory leaks
Modified Paths:
--------------
trunk/tp/Texinfo/XS/parsetexi/errors.c
trunk/tp/Texinfo/XS/parsetexi/parser.c
trunk/tp/Texinfo/XS/parsetexi/separator.c
trunk/tp/Texinfo/XS/parsetexi/text.c
Modified: trunk/tp/Texinfo/XS/parsetexi/errors.c
===================================================================
--- trunk/tp/Texinfo/XS/parsetexi/errors.c 2018-08-16 16:24:40 UTC (rev
8097)
+++ trunk/tp/Texinfo/XS/parsetexi/errors.c 2018-08-16 18:05:23 UTC (rev
8098)
@@ -110,6 +110,9 @@
void
wipe_errors (void)
{
+ int i;
+ for (i = 0; i < error_number; i++)
+ free (error_list[i].message);
error_number = 0;
}
@@ -117,9 +120,9 @@
dump_errors (void)
{
int i;
- TEXT t;
+ static TEXT t;
- text_init (&t);
+ text_reset (&t);
text_append (&t, "$ERRORS = [\n");
for (i = 0; i < error_number; i++)
{
Modified: trunk/tp/Texinfo/XS/parsetexi/parser.c
===================================================================
--- trunk/tp/Texinfo/XS/parsetexi/parser.c 2018-08-16 16:24:40 UTC (rev
8097)
+++ trunk/tp/Texinfo/XS/parsetexi/parser.c 2018-08-16 18:05:23 UTC (rev
8098)
@@ -498,8 +498,7 @@
else if (last_child->type == ET_empty_spaces_before_argument)
{
/* Remove element from main tree. */
- pop_element_from_contents (current);
- /* FIXME: destroy_element? */
+ ELEMENT *e = pop_element_from_contents (current);
if (owning_keypair)
{
@@ -511,6 +510,8 @@
owning_keypair->value = 0;
owning_keypair->type = extra_deleted;
}
+ e->text.text = 0;
+ destroy_element (e);
}
retval = 1;
}
Modified: trunk/tp/Texinfo/XS/parsetexi/separator.c
===================================================================
--- trunk/tp/Texinfo/XS/parsetexi/separator.c 2018-08-16 16:24:40 UTC (rev
8097)
+++ trunk/tp/Texinfo/XS/parsetexi/separator.c 2018-08-16 18:05:23 UTC (rev
8098)
@@ -237,6 +237,7 @@
&& last_contents_child(current)->type
== ET_empty_spaces_before_argument)
{
+ /* FIXME: Is this right? */
remove_from_contents (current, 0);
}
}
Modified: trunk/tp/Texinfo/XS/parsetexi/text.c
===================================================================
--- trunk/tp/Texinfo/XS/parsetexi/text.c 2018-08-16 16:24:40 UTC (rev
8097)
+++ trunk/tp/Texinfo/XS/parsetexi/text.c 2018-08-16 18:05:23 UTC (rev
8098)
@@ -70,6 +70,16 @@
}
void
+text_reset (TEXT *t)
+{
+ if (t->end > 0)
+ {
+ t->end = 0;
+ t->text[0] = 0;
+ }
+}
+
+void
text_init (TEXT *t)
{
t->end = t->space = 0;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [8098] parsetexi fix some memory leaks,
gavinsmith0123 <=