evdev: Cache the regexp

Instead of recreating it for every new device, we can cache the GRegex
and reuse it.

https://bugzilla.gnome.org/show_bug.cgi?id=707901
This commit is contained in:
Emmanuele Bassi 2013-09-11 09:48:51 +01:00
parent a26690a73d
commit 9eb479aeef

View File

@ -820,13 +820,15 @@ find_source_by_device (ClutterDeviceManagerEvdev *manager,
static gboolean static gboolean
is_evdev (const gchar *sysfs_path) is_evdev (const gchar *sysfs_path)
{ {
GRegex *regex; static GRegex *regex = NULL;
gboolean match; gboolean match;
regex = g_regex_new ("/input[0-9]+/event[0-9]+$", 0, 0, NULL); /* cache the regexp */
if (G_UNLIKELY (regex == NULL))
regex = g_regex_new ("/input[0-9]+/event[0-9]+$", 0, 0, NULL);
match = g_regex_match (regex, sysfs_path, 0, NULL); match = g_regex_match (regex, sysfs_path, 0, NULL);
g_regex_unref (regex);
return match; return match;
} }