]> granicus.if.org Git - handbrake/commitdiff
LinGui: fix several small memory leaks
authorjstebbins <jstebbins.hb@gmail.com>
Wed, 29 Oct 2014 23:04:11 +0000 (23:04 +0000)
committerjstebbins <jstebbins.hb@gmail.com>
Wed, 29 Oct 2014 23:04:11 +0000 (23:04 +0000)
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6479 b64f7644-9d1e-0410-96f1-a4d463321fa5

gtk/src/callbacks.c
gtk/src/presets.c
gtk/src/queuehandler.c
gtk/src/subtitlehandler.c
gtk/src/subtitlehandler.h

index 3859cbefa6c491a5daef8db3cccf4c5dead4b415..5f9183db69ef718b693c7c8b526d21c1662db1fa 100644 (file)
@@ -567,9 +567,9 @@ check_name_template(signal_user_data_t *ud, const char *str)
 {
     if (ghb_settings_get_boolean(ud->prefs, "auto_name"))
     {
-        gchar *template;
+        const gchar *template;
 
-        template = ghb_settings_get_string(ud->prefs, "auto_name_template");
+        template = ghb_settings_get_const_string(ud->prefs, "auto_name_template");
         if (strstr(template, str) != NULL)
             return TRUE;
     }
@@ -1811,6 +1811,7 @@ set_title_settings(signal_user_data_t *ud, GValue *settings)
     title_id = ghb_settings_get_int(settings, "title");
     title = ghb_lookup_title(title_id, &titleindex);
 
+    ghb_subtitle_set_pref_lang(settings);
     if (title != NULL)
     {
         gint num_chapters = hb_list_count(title->list_chapter);
index 01692a68a19afea567aa6c6a9557878bbba56f9d..e5a5b65b4dcabbec31f9a08df6167f1f5a04a012 100644 (file)
@@ -1148,6 +1148,7 @@ ghb_get_user_config_dir(gchar *subdir)
             if (!g_file_test(config, G_FILE_TEST_IS_DIR))
                 g_mkdir (config, 0755);
         }
+        g_strfreev(split);
     }
     return config;
 }
@@ -2638,7 +2639,7 @@ import_xlat_preset(GValue *user_preset)
     } break;
     }
 
-    gchar *mode = ghb_settings_get_string(dict, "VideoFramerateMode");
+    const gchar *mode = ghb_settings_get_const_string(dict, "VideoFramerateMode");
     if (strcmp(mode, "cfr") == 0)
     {
         ghb_settings_set_boolean(dict, "VideoFramerateCFR", TRUE);
@@ -2657,7 +2658,6 @@ import_xlat_preset(GValue *user_preset)
         ghb_settings_set_boolean(dict, "VideoFrameratePFR", FALSE);
         ghb_settings_set_boolean(dict, "VideoFramerateVFR", TRUE);
     }
-    g_free(mode);
 
     if (ghb_settings_get_boolean(dict, "x264UseAdvancedOptions"))
     {
@@ -2730,26 +2730,26 @@ import_xlat_preset(GValue *user_preset)
         g_free(tune);
     }
 
-    char *videoProfile;
+    const char *videoProfile;
     if (ghb_dict_lookup(user_preset, "x264Profile") != NULL)
-        videoProfile = ghb_settings_get_string(dict, "x264Profile");
+        videoProfile = ghb_settings_get_const_string(dict, "x264Profile");
     else
-        videoProfile = ghb_settings_get_string(dict, "VideoProfile");
+        videoProfile = ghb_settings_get_const_string(dict, "VideoProfile");
     if (videoProfile != NULL)
         ghb_settings_set_string(dict, "VideoProfile", videoProfile);
 
-    char *videoLevel;
+    const char *videoLevel;
     if (ghb_dict_lookup(user_preset, "x264Level") != NULL)
-        videoLevel = ghb_settings_get_string(dict, "x264Level");
+        videoLevel = ghb_settings_get_const_string(dict, "x264Level");
     else
-        videoLevel = ghb_settings_get_string(dict, "VideoLevel");
+        videoLevel = ghb_settings_get_const_string(dict, "VideoLevel");
     if (videoLevel != NULL)
         ghb_settings_set_string(dict, "VideoLevel", videoLevel);
 
     if (ghb_dict_lookup(user_preset, "x264OptionExtra") != NULL)
     {
-        char *optionExtra;
-        optionExtra = ghb_settings_get_string(dict, "x264OptionExtra");
+        const char *optionExtra;
+        optionExtra = ghb_settings_get_const_string(dict, "x264OptionExtra");
         ghb_settings_set_string(dict, "VideoOptionExtra", optionExtra);
     }
 
@@ -3389,7 +3389,7 @@ preset_import_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
 {
     GtkWidget *dialog;
     GtkResponseType response;
-    gchar *exportDir;
+    const gchar *exportDir;
     gchar *filename;
     GtkFileFilter *filter;
 
@@ -3412,13 +3412,12 @@ preset_import_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
     gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), filter);
     gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(dialog), filter);
 
-    exportDir = ghb_settings_get_string(ud->prefs, "ExportDirectory");
+    exportDir = ghb_settings_get_const_string(ud->prefs, "ExportDirectory");
     if (exportDir == NULL || exportDir[0] == '\0')
     {
-        exportDir = g_strdup(".");
+        exportDir = ".";
     }
     gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), exportDir);
-    g_free(exportDir);
 
     response = gtk_dialog_run(GTK_DIALOG(dialog));
     gtk_widget_hide(dialog);
@@ -3481,7 +3480,7 @@ preset_import_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
         }
         ghb_value_free(array);
 
-        exportDir = ghb_settings_get_string(ud->prefs, "ExportDirectory");
+        exportDir = ghb_settings_get_const_string(ud->prefs, "ExportDirectory");
         dir = g_path_get_dirname(filename);
         if (strcmp(dir, exportDir) != 0)
         {
@@ -3489,7 +3488,6 @@ preset_import_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
             ghb_pref_save(ud->prefs, "ExportDirectory");
         }
         g_free(filename);
-        g_free(exportDir);
         g_free(dir);
         store_presets();
     }
@@ -3530,7 +3528,7 @@ preset_export_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
     GValue *preset;
     const gchar *name = "";
     gint count, *indices, len;
-    gchar *exportDir;
+    const gchar *exportDir;
     gchar *filename;
 
     g_debug("preset_export_clicked_cb ()");
@@ -3553,16 +3551,15 @@ preset_export_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
                 GHB_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
                 NULL);
 
-    exportDir = ghb_settings_get_string(ud->prefs, "ExportDirectory");
+    exportDir = ghb_settings_get_const_string(ud->prefs, "ExportDirectory");
     if (exportDir == NULL || exportDir[0] == '\0')
     {
-        exportDir = g_strdup(".");
+        exportDir = ".";
     }
     filename = g_strdup_printf("%s.plist", name);
     gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), exportDir);
     gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(dialog), filename);
     g_free(filename);
-    g_free(exportDir);
 
     indices = ghb_preset_indices_from_path(presetsPlist, preset, &len);
     if (indices == NULL)
@@ -3599,14 +3596,13 @@ preset_export_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
         }
         ghb_value_free(array);
 
-        exportDir = ghb_settings_get_string(ud->prefs, "ExportDirectory");
+        exportDir = ghb_settings_get_const_string(ud->prefs, "ExportDirectory");
         dir = g_path_get_dirname(filename);
         if (strcmp(dir, exportDir) != 0)
         {
             ghb_settings_set_string(ud->prefs, "ExportDirectory", dir);
             ghb_pref_save(ud->prefs, "ExportDirectory");
         }
-        g_free(exportDir);
         g_free(dir);
         g_free(filename);
     }
index 45e14e8e26e47da510154876308e8a72156c37df..4f667cf7c8bd02e71e52f6e40d6b983ffe68c822 100644 (file)
@@ -781,7 +781,8 @@ validate_settings(signal_user_data_t *ud, GValue *settings, gint batch)
 {
     // Check to see if the dest file exists or is
     // already in the queue
-    gchar *message, *dest;
+    gchar *message;
+    const gchar *dest;
     gint count, ii;
     gint title_id, titleindex;
     const hb_title_t *title;
@@ -789,15 +790,15 @@ validate_settings(signal_user_data_t *ud, GValue *settings, gint batch)
     title_id = ghb_settings_get_int(settings, "title");
     title = ghb_lookup_title(title_id, &titleindex);
     if (title == NULL) return FALSE;
-    dest = ghb_settings_get_string(settings, "destination");
+    dest = ghb_settings_get_const_string(settings, "destination");
     count = ghb_array_len(ud->queue);
     for (ii = 0; ii < count; ii++)
     {
         GValue *js;
-        gchar *filename;
+        const gchar *filename;
 
         js = ghb_array_get_nth(ud->queue, ii);
-        filename = ghb_settings_get_string(js, "destination");
+        filename = ghb_settings_get_const_string(js, "destination");
         if (strcmp(dest, filename) == 0)
         {
             message = g_strdup_printf(
@@ -807,15 +808,12 @@ validate_settings(signal_user_data_t *ud, GValue *settings, gint batch)
                         dest);
             if (!ghb_message_dialog(GTK_MESSAGE_QUESTION, message, _("Cancel"), _("Overwrite")))
             {
-                g_free(filename);
-                g_free(dest);
                 g_free(message);
                 return FALSE;
             }
             g_free(message);
             break;
         }
-        g_free(filename);
     }
     gchar *destdir = g_path_get_dirname(dest);
     if (!g_file_test(destdir, G_FILE_TEST_IS_DIR))
@@ -825,7 +823,6 @@ validate_settings(signal_user_data_t *ud, GValue *settings, gint batch)
                     "This is not a valid directory."),
                     destdir);
         ghb_message_dialog(GTK_MESSAGE_ERROR, message, _("Cancel"), NULL);
-        g_free(dest);
         g_free(message);
         g_free(destdir);
         return FALSE;
@@ -839,7 +836,6 @@ validate_settings(signal_user_data_t *ud, GValue *settings, gint batch)
                     "Can not read or write the directory."),
                     destdir);
         ghb_message_dialog(GTK_MESSAGE_ERROR, message, _("Cancel"), NULL);
-        g_free(dest);
         g_free(message);
         g_free(destdir);
         return FALSE;
@@ -871,8 +867,8 @@ validate_settings(signal_user_data_t *ud, GValue *settings, gint batch)
                                 (guint)(size / (1024L*1024L)));
                     if (!ghb_message_dialog(GTK_MESSAGE_QUESTION, message, _("Cancel"), _("Proceed")))
                     {
-                        g_free(dest);
                         g_free(message);
+                        g_free(destdir);
                         return FALSE;
                     }
                     g_free(message);
@@ -893,14 +889,12 @@ validate_settings(signal_user_data_t *ud, GValue *settings, gint batch)
                     dest);
         if (!ghb_message_dialog(GTK_MESSAGE_QUESTION, message, _("Cancel"), _("Overwrite")))
         {
-            g_free(dest);
             g_free(message);
             return FALSE;
         }
         g_free(message);
         g_unlink(dest);
     }
-    g_free(dest);
     // Validate audio settings
     if (!ghb_validate_audio(settings))
     {
index dd4faef4b821718c28ab25195a11dc49bb69356a..0c3933dd1d06b58631a6eeac4fdf1aede348e557 100644 (file)
@@ -1336,6 +1336,28 @@ subtitle_update_pref_lang(signal_user_data_t *ud, const iso639_lang_t *lang)
     gtk_widget_set_visible(GTK_WIDGET(button), visible);
 }
 
+void
+ghb_subtitle_set_pref_lang(GValue *settings)
+{
+    GValue *lang_list;
+    gboolean set = FALSE;
+    lang_list = ghb_settings_get_value(settings, "SubtitleLanguageList");
+    if (ghb_array_len(lang_list) > 0)
+    {
+        GValue *glang = ghb_array_get_nth(lang_list, 0);
+        if (glang != NULL)
+        {
+            ghb_settings_set_string(settings, "PreferredLanguage",
+                                    g_value_get_string(glang));
+            set = TRUE;
+        }
+    }
+    if (!set)
+    {
+        ghb_settings_set_string(settings, "PreferredLanguage", "und");
+    }
+}
+
 G_MODULE_EXPORT void
 subtitle_add_lang_clicked_cb(GtkWidget *widget, signal_user_data_t *ud)
 {
index 0569be89e464f8a88739bf63e0a72fa9a682ec86..74c5f7f6901dbc9d8b8325eda4f78b37148d0ad7 100644 (file)
@@ -36,5 +36,6 @@ void ghb_subtitle_list_refresh_all(signal_user_data_t *ud);
 void ghb_init_subtitle_defaults_ui(signal_user_data_t *ud);
 void ghb_subtitle_defaults_to_ui(signal_user_data_t *ud);
 void ghb_subtitle_title_change(signal_user_data_t *ud, gboolean show);
+void ghb_subtitle_set_pref_lang(GValue *settings);
 
 #endif // _SUBTITLEHANDLER_H_