From: Simon McVittie Date: Thu, 29 Aug 2013 11:49:35 +0000 (+0100) Subject: _dbus_file_path_extract_elements_from_tail: don't misuse static variable X-Git-Tag: dbus-1.8.2~179 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cc28d8d91055e7640932c67031ca0ec86dddac06;p=platform%2Fupstream%2Fdbus.git _dbus_file_path_extract_elements_from_tail: don't misuse static variable If we _dbus_verbose() from more than one thread at the same time, we don't want to get into trouble with static variables (and I don't think micro-optimizing this function is really worth it anyway). Bug: https://bugs.freedesktop.org/show_bug.cgi?id=68610 Reviewed-by: Ralf Habacker --- diff --git a/dbus/dbus-internals.c b/dbus/dbus-internals.c index 257f1d4..e248259 100644 --- a/dbus/dbus-internals.c +++ b/dbus/dbus-internals.c @@ -332,25 +332,22 @@ _dbus_verbose_init (void) */ static char *_dbus_file_path_extract_elements_from_tail(const char *file,int level) { - static int prefix = -1; + int prefix = 0; + char *p = (char *)file + strlen(file); + int i = 0; - if (prefix == -1) + for (;p >= file;p--) { - char *p = (char *)file + strlen(file); - int i = 0; - prefix = 0; - for (;p >= file;p--) + if (DBUS_IS_DIR_SEPARATOR(*p)) { - if (DBUS_IS_DIR_SEPARATOR(*p)) + if (++i >= level) { - if (++i >= level) - { - prefix = p-file+1; - break; - } - } - } + prefix = p-file+1; + break; + } + } } + return (char *)file+prefix; }