Re: cache G_BROKEN_FILENAMES
- From: Owen Taylor <otaylor redhat com>
- To: Alex Larsson <alexl redhat com>
- Cc: gtk-devel-list gnome org
- Subject: Re: cache G_BROKEN_FILENAMES
- Date: Sun, 10 Mar 2002 15:04:11 -0500 (EST)
Alex Larsson <alexl redhat com> writes:
> Caching the value of getenv("G_BROKEN_FILENAMES") helps nautilus
> performance some (getenv showed up as number two in the profile)
Thread safety problems here. You could either:
a) Add locking
b) Arrange for g_thread_init()to call have_broken_filenames.
Regards,
Owen
> Index: glib/gconvert.c
> ===================================================================
> RCS file: /cvs/gnome/glib/glib/gconvert.c,v
> retrieving revision 1.34
> diff -u -p -r1.34 gconvert.c
> --- glib/gconvert.c 8 Mar 2002 15:50:53 -0000 1.34
> +++ glib/gconvert.c 10 Mar 2002 18:31:55 -0000
> @@ -1189,6 +1189,24 @@ g_locale_from_utf8 (const gchar *utf8str
> #endif /* !G_PLATFORM_WIN32 */
> }
>
> +#ifndef G_PLATFORM_WIN32
> +static gboolean
> +have_broken_filenames (void)
> +{
> + static gboolean initialized = FALSE;
> + static gboolean broken;
> +
> + if (initialized)
> + return broken;
> +
> + broken = (getenv ("G_BROKEN_FILENAMES") != NULL);
> +
> + initialized = TRUE;
> +
> + return broken;
> +}
> +#endif /* !G_PLATFORM_WIN32 */
> +
> /**
> * g_filename_to_utf8:
> * @opsysstring: a string in the encoding for filenames
> @@ -1225,7 +1243,7 @@ g_filename_to_utf8 (const gchar *opsysst
> error);
> #else /* !G_PLATFORM_WIN32 */
>
> - if (getenv ("G_BROKEN_FILENAMES"))
> + if (have_broken_filenames ())
> return g_locale_to_utf8 (opsysstring, len,
> bytes_read, bytes_written,
> error);
> @@ -1268,7 +1286,7 @@ g_filename_from_utf8 (const gchar *utf8s
> bytes_read, bytes_written,
> error);
> #else /* !G_PLATFORM_WIN32 */
> - if (getenv ("G_BROKEN_FILENAMES"))
> + if (have_broken_filenames ())
> return g_locale_from_utf8 (utf8string, len,
> bytes_read, bytes_written,
> error);
>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]