[PATCH] Unconditionally call __gconv_get_path when reading iconv configuration

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH] Unconditionally call __gconv_get_path when reading iconv configuration

Arjun Shankar
__gconv_read_conf is only ever called once during the program's lifetime.
This means that __gconv_path_elem is always uninitialized when the function
begins executing.  __gconv_get_path has an assert to ensure that this
expected runtime behaviour is always exhibited.  Given this, checking for a
NULL value before calling __gconv_get_path is unnecessary.  This commit
drops the condition and calls __gconv_get_path unconditionally.

ChangeLog:

2018-11-01  Arjun Shankar  <[hidden email]>

        * iconv/gconv_conf.c (__gconv_read_conf): Remove NULL check for
        __gconv_path_elem and call __gconv_get_path unconditionally.

Tested on x86_64.
---

diff --git a/iconv/gconv_conf.c b/iconv/gconv_conf.c
index 78010491e6..2b73dd8f45 100644
--- a/iconv/gconv_conf.c
+++ b/iconv/gconv_conf.c
@@ -552,8 +552,7 @@ __gconv_read_conf (void)
 
 #ifndef STATIC_GCONV
   /* Find out where we have to look.  */
-  if (__gconv_path_elem == NULL)
-    __gconv_get_path ();
+  __gconv_get_path ();
 
   for (cnt = 0; __gconv_path_elem[cnt].name != NULL; ++cnt)
     {
--
2.17.2

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Unconditionally call __gconv_get_path when reading iconv configuration

Florian Weimer-5
* Arjun Shankar:

> __gconv_read_conf is only ever called once during the program's lifetime.
> This means that __gconv_path_elem is always uninitialized when the function
> begins executing.  __gconv_get_path has an assert to ensure that this
> expected runtime behaviour is always exhibited.  Given this, checking for a
> NULL value before calling __gconv_get_path is unnecessary.  This commit
> drops the condition and calls __gconv_get_path unconditionally.
>
> ChangeLog:
>
> 2018-11-01  Arjun Shankar  <[hidden email]>
>
> * iconv/gconv_conf.c (__gconv_read_conf): Remove NULL check for
> __gconv_path_elem and call __gconv_get_path unconditionally.

This is okay.

Thanks,
Florian