[gnome-builder] vcs: move malloc/free calls outside of lock
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] vcs: move malloc/free calls outside of lock
- Date: Wed, 31 Jan 2018 10:30:02 +0000 (UTC)
commit 89ab3f97984d1bd395d39cdbfea5d2320955f160
Author: Christian Hergert <chergert redhat com>
Date: Wed Jan 31 02:27:28 2018 -0800
vcs: move malloc/free calls outside of lock
These can be done without holding the lock, so do them there.
src/libide/vcs/ide-vcs.c | 30 ++++++++++++++++++++++--------
1 file changed, 22 insertions(+), 8 deletions(-)
---
diff --git a/src/libide/vcs/ide-vcs.c b/src/libide/vcs/ide-vcs.c
index d92b50995..69149dddc 100644
--- a/src/libide/vcs/ide-vcs.c
+++ b/src/libide/vcs/ide-vcs.c
@@ -153,7 +153,10 @@ ide_vcs_is_ignored (IdeVcs *self,
GFile *file,
GError **error)
{
+ g_autofree gchar *name = NULL;
+ g_autofree gchar *reversed = NULL;
gboolean ret = FALSE;
+ gsize len;
g_return_val_if_fail (!self || IDE_IS_VCS (self), FALSE);
g_return_val_if_fail (!file || G_IS_FILE (file), FALSE);
@@ -161,14 +164,18 @@ ide_vcs_is_ignored (IdeVcs *self,
if (file == NULL)
return TRUE;
+ name = g_file_get_basename (file);
+ if (name == NULL || *name == 0)
+ return TRUE;
+
+ len = strlen (name);
+
+ reversed = g_utf8_strreverse (name, len);
+
G_LOCK (ignored);
if G_LIKELY (ignored != NULL)
{
- g_autofree gchar *name = g_file_get_basename (file);
- guint len = strlen (name);
- g_autofree gchar *reversed = g_utf8_strreverse (name, len);
-
for (guint i = 0; i < ignored->len; i++)
{
GPatternSpec *pattern_spec = g_ptr_array_index (ignored, i);
@@ -221,6 +228,9 @@ ide_vcs_path_is_ignored (IdeVcs *self,
const gchar *path,
GError **error)
{
+ g_autofree gchar *name = NULL;
+ g_autofree gchar *reversed = NULL;
+ gsize len;
gboolean ret = FALSE;
g_return_val_if_fail (!self || IDE_IS_VCS (self), FALSE);
@@ -228,14 +238,18 @@ ide_vcs_path_is_ignored (IdeVcs *self,
if (path == NULL)
return TRUE;
+ name = g_path_get_basename (path);
+ if (name == NULL || *name == 0)
+ return TRUE;
+
+ len = strlen (name);
+
+ reversed = g_utf8_strreverse (name, len);
+
G_LOCK (ignored);
if G_LIKELY (ignored != NULL)
{
- g_autofree gchar *name = g_path_get_basename (path);
- guint len = strlen (name);
- g_autofree gchar *reversed = g_utf8_strreverse (name, len);
-
for (guint i = 0; i < ignored->len; i++)
{
GPatternSpec *pattern_spec = g_ptr_array_index (ignored, i);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]