[anjuta] build-basic-autotools: guard against NULL project_uri when build is configured



commit 812b4af087d508d4789a2cb5bc744e1295b07d43
Author: Carl-Anton Ingmarsson <ca ingmarsson gmail com>
Date:   Sat May 18 00:21:26 2013 +0200

    build-basic-autotools: guard against NULL project_uri when build is configured

 plugins/build-basic-autotools/build.c              |   30 ++++++++++++--------
 plugins/build-basic-autotools/configuration-list.c |    5 ++-
 2 files changed, 22 insertions(+), 13 deletions(-)
---
diff --git a/plugins/build-basic-autotools/build.c b/plugins/build-basic-autotools/build.c
index fab04a7..fba25c2 100644
--- a/plugins/build-basic-autotools/build.c
+++ b/plugins/build-basic-autotools/build.c
@@ -899,26 +899,32 @@ build_project_configured (GObject *sender,
        {
                BuildContext *context = (BuildContext *)handle;
                BasicAutotoolsPlugin *plugin = (BasicAutotoolsPlugin *)(context == NULL ? (void *)sender : 
(void *)build_context_get_plugin (context));
-               GValue *value;
                GFile *file;
-               gchar *uri;
 
                /* FIXME: check if build directory correspond, configuration could have changed */
-               value = g_new0 (GValue, 1);
-               g_value_init (value, G_TYPE_STRING);
 
                file = build_configuration_list_get_build_file (plugin->configurations, 
build_configuration_list_get_selected (plugin->configurations));
-               uri = g_file_get_uri (file);
-               g_value_set_string (value, uri);
-               g_free (uri);
-               g_object_unref (file);
+               if (file)
+               {
+                       GValue value = G_VALUE_INIT;
+                       gchar *uri;
 
-               anjuta_shell_add_value (ANJUTA_PLUGIN (plugin)->shell, IANJUTA_BUILDER_ROOT_URI, value, NULL);
+                       uri = g_file_get_uri (file);
+                       g_value_init (&value, G_TYPE_STRING);
+                       g_value_set_string (&value, uri);
+                       g_free (uri);
+                       g_object_unref (file);
+                       
+                       anjuta_shell_add_value (ANJUTA_PLUGIN (plugin)->shell, IANJUTA_BUILDER_ROOT_URI, 
&value, NULL);
+                       g_value_unset (&value);
 
-               build_update_configuration_menu (plugin);
+                       /* Call build function if necessary */
+                       if ((pack) && (pack->func != NULL)) pack->func (plugin, pack->file, pack->callback, 
pack->user_data, NULL);
+               }
+               else
+                       anjuta_shell_remove_value (ANJUTA_PLUGIN (plugin)->shell, IANJUTA_BUILDER_ROOT_URI, 
NULL);
 
-               /* Call build function if necessary */
-               if ((pack) && (pack->func != NULL)) pack->func (plugin, pack->file, pack->callback, 
pack->user_data, NULL);
+               build_update_configuration_menu (plugin);
        }
 
        if (pack)
diff --git a/plugins/build-basic-autotools/configuration-list.c 
b/plugins/build-basic-autotools/configuration-list.c
index 5d4a9aa..109ef8b 100644
--- a/plugins/build-basic-autotools/configuration-list.c
+++ b/plugins/build-basic-autotools/configuration-list.c
@@ -421,8 +421,11 @@ build_configuration_list_get_build_file (BuildConfigurationList *list, BuildConf
 {
        GFile *build;
 
+       if (!list->project_root_uri)
+               return NULL;
+
        build = g_file_new_for_uri (list->project_root_uri);
-       if ((list->project_root_uri != NULL) && (cfg->build_uri != NULL))
+       if (cfg->build_uri != NULL)
        {
                GFile *root;
                root = build;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]