[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
branch master updated: * tp/Texinfo/XS/convert/call_html_perl_function.c
From: |
Patrice Dumas |
Subject: |
branch master updated: * tp/Texinfo/XS/convert/call_html_perl_function.c (clear_registered_ids_hv, free_registered_ids_hv), tp/Texinfo/XS/convert/html_converter_finish.c (html_reset_converter) (html_free_converter), tp/Texinfo/XS/convert/replace_perl_call_html_function.c (clear_registered_ids_hv, free_registered_ids_hv): reset or free data only if it has been set, in particular if a converter is free'd right after having been setup. |
Date: |
Sat, 05 Oct 2024 03:45:33 -0400 |
This is an automated email from the git hooks/post-receive script.
pertusus pushed a commit to branch master
in repository texinfo.
The following commit(s) were added to refs/heads/master by this push:
new 73d05366e6 * tp/Texinfo/XS/convert/call_html_perl_function.c
(clear_registered_ids_hv, free_registered_ids_hv),
tp/Texinfo/XS/convert/html_converter_finish.c (html_reset_converter)
(html_free_converter), tp/Texinfo/XS/convert/replace_perl_call_html_function.c
(clear_registered_ids_hv, free_registered_ids_hv): reset or free data only if
it has been set, in particular if a converter is free'd right after having been
setup.
73d05366e6 is described below
commit 73d05366e69732fe535dd45253fc41406177e9ed
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Thu Aug 22 21:26:10 2024 +0200
* tp/Texinfo/XS/convert/call_html_perl_function.c
(clear_registered_ids_hv, free_registered_ids_hv),
tp/Texinfo/XS/convert/html_converter_finish.c (html_reset_converter)
(html_free_converter),
tp/Texinfo/XS/convert/replace_perl_call_html_function.c
(clear_registered_ids_hv, free_registered_ids_hv): reset or free data
only if it has been set, in particular if a converter is free'd right
after having been setup.
---
ChangeLog | 11 +++++++
tp/Texinfo/XS/convert/call_html_perl_function.c | 6 ++--
tp/Texinfo/XS/convert/html_converter_finish.c | 36 ++++++++++++++--------
.../XS/convert/replace_perl_call_html_function.c | 6 ++--
4 files changed, 42 insertions(+), 17 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index c4c2248b40..2b83aaac7f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2024-08-22 Patrice Dumas <pertusus@free.fr>
+
+ * tp/Texinfo/XS/convert/call_html_perl_function.c
+ (clear_registered_ids_hv, free_registered_ids_hv),
+ tp/Texinfo/XS/convert/html_converter_finish.c (html_reset_converter)
+ (html_free_converter),
+ tp/Texinfo/XS/convert/replace_perl_call_html_function.c
+ (clear_registered_ids_hv, free_registered_ids_hv): reset or free data
+ only if it has been set, in particular if a converter is free'd right
+ after having been setup.
+
2024-08-22 Patrice Dumas <pertusus@free.fr>
* tp/maintain/regenerate_C_options_info.pl: remove leading directory
diff --git a/tp/Texinfo/XS/convert/call_html_perl_function.c
b/tp/Texinfo/XS/convert/call_html_perl_function.c
index 9d7249186a..dfa32a5e4c 100644
--- a/tp/Texinfo/XS/convert/call_html_perl_function.c
+++ b/tp/Texinfo/XS/convert/call_html_perl_function.c
@@ -2435,7 +2435,8 @@ clear_registered_ids_hv (CONVERTER *self)
{
dTHX;
- hv_clear (self->registered_ids_hv);
+ if (self->registered_ids_hv)
+ hv_clear (self->registered_ids_hv);
}
void
@@ -2443,5 +2444,6 @@ free_registered_ids_hv (CONVERTER *self)
{
dTHX;
- hv_undef (self->registered_ids_hv);
+ if (self->registered_ids_hv)
+ hv_undef (self->registered_ids_hv);
}
diff --git a/tp/Texinfo/XS/convert/html_converter_finish.c
b/tp/Texinfo/XS/convert/html_converter_finish.c
index 573598b8dc..d4c22dfb5c 100644
--- a/tp/Texinfo/XS/convert/html_converter_finish.c
+++ b/tp/Texinfo/XS/convert/html_converter_finish.c
@@ -157,7 +157,7 @@ html_reset_converter (CONVERTER *self)
if (self->ids_data_type == IDT_perl_hashmap)
clear_registered_ids_hv (self);
- else
+ else if (self->registered_ids)
clear_strings_list (self->registered_ids);
for (i = 0; i < ST_footnote_location+1; i++)
@@ -177,7 +177,8 @@ html_reset_converter (CONVERTER *self)
/* formatted_index_entries may not be initialized if there was an error
early and prepare_conversion_units_targets was never called */
- if (self->document->indices_info.number
+ if (self->document
+ && self->document->indices_info.number
&& self->shared_conversion_state.formatted_index_entries)
{
for (i = 0; i < self->sorted_index_names.number; i++)
@@ -335,7 +336,8 @@ html_free_converter (CONVERTER *self)
free_registered_ids_hv (self);
else
{
- destroy_strings_list (self->registered_ids);
+ if (self->registered_ids)
+ destroy_strings_list (self->registered_ids);
self->registered_ids = 0;
}
@@ -444,12 +446,16 @@ html_free_converter (CONVERTER *self)
{
int j;
char ***type_dir_strings = self->directions_strings[i];
- html_clear_direction_string_type (self, type_dir_strings);
- for (j = 0; j < nr_string_directions; j++)
+ /* type_dir_strings not set if converter is destroyed before output */
+ if (type_dir_strings)
{
- free (type_dir_strings[j]);
+ html_clear_direction_string_type (self, type_dir_strings);
+ for (j = 0; j < nr_string_directions; j++)
+ {
+ free (type_dir_strings[j]);
+ }
+ free (type_dir_strings);
}
- free (type_dir_strings);
}
for (i = 0; i < (TDS_TYPE_MAX_NR) - (TDS_TRANSLATED_MAX_NR); i++)
@@ -497,16 +503,20 @@ html_free_converter (CONVERTER *self)
int j;
HTML_DIRECTION_STRING_TRANSLATED *translated
= self->translated_direction_strings[i];
- for (j = 0; j < nr_string_directions; j++)
+ /* translated not set if converter is destroyed before setting defaults */
+ if (translated)
{
- int k;
- free (translated[j].to_convert);
- for (k = 0; k < nr_dir_str_contexts; k++)
+ for (j = 0; j < nr_string_directions; j++)
{
- free (translated[j].converted[k]);
+ int k;
+ free (translated[j].to_convert);
+ for (k = 0; k < nr_dir_str_contexts; k++)
+ {
+ free (translated[j].converted[k]);
+ }
}
+ free (translated);
}
- free (translated);
}
for (j = 0; j < self->htmlxref.number; j++)
diff --git a/tp/Texinfo/XS/convert/replace_perl_call_html_function.c
b/tp/Texinfo/XS/convert/replace_perl_call_html_function.c
index 0fba386433..325cb07c16 100644
--- a/tp/Texinfo/XS/convert/replace_perl_call_html_function.c
+++ b/tp/Texinfo/XS/convert/replace_perl_call_html_function.c
@@ -361,13 +361,15 @@ hv_register_id (CONVERTER *self, const char *string)
void
clear_registered_ids_hv (CONVERTER *self)
{
- clear_strings_list (self->registered_ids);
+ if (self->registered_ids)
+ clear_strings_list (self->registered_ids);
}
void
free_registered_ids_hv (CONVERTER *self)
{
- destroy_strings_list (self->registered_ids);
+ if (self->registered_ids)
+ destroy_strings_list (self->registered_ids);
self->registered_ids = 0;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- branch master updated: * tp/Texinfo/XS/convert/call_html_perl_function.c (clear_registered_ids_hv, free_registered_ids_hv), tp/Texinfo/XS/convert/html_converter_finish.c (html_reset_converter) (html_free_converter), tp/Texinfo/XS/convert/replace_perl_call_html_function.c (clear_registered_ids_hv, free_registered_ids_hv): reset or free data only if it has been set, in particular if a converter is free'd right after having been setup.,
Patrice Dumas <=