Fix problems found by Coverity scan.

CID #743175 Unchecked return value
CID #743176 Logically dead code
CID #743177 Dereference after null check
CID #743178 Dereference before null check
CID #743179 Uninitialized scalar variable
CID #743180 Uninitialized scalar variable
This commit is contained in:
Tomasz Moń
2012-11-12 21:11:55 +01:00
parent c927b075a7
commit 890d40f6c6
2 changed files with 40 additions and 34 deletions

View File

@@ -625,7 +625,7 @@ static gint gtk_knob_key_press(GtkWidget *widget, GdkEventKey *event)
static gint static gint
gtk_knob_motion_notify(GtkWidget *widget, GdkEventMotion *event) { gtk_knob_motion_notify(GtkWidget *widget, GdkEventMotion *event) {
GtkKnob *knob; GtkKnob *knob;
GdkModifierType mods; GdkWindow *window;
gint x, y; gint x, y;
g_return_val_if_fail (widget != NULL, FALSE); g_return_val_if_fail (widget != NULL, FALSE);
@@ -637,10 +637,6 @@ gtk_knob_motion_notify(GtkWidget *widget, GdkEventMotion *event) {
x = event->x; x = event->x;
y = event->y; y = event->y;
if (event->is_hint || (event->window != gtk_widget_get_window(widget))) {
gdk_window_get_pointer(gtk_widget_get_window(widget), &x, &y, &mods);
}
switch (knob->state) { switch (knob->state) {
case STATE_PRESSED: case STATE_PRESSED:
@@ -648,14 +644,22 @@ gtk_knob_motion_notify(GtkWidget *widget, GdkEventMotion *event) {
/* fall through */ /* fall through */
case STATE_DRAGGING: case STATE_DRAGGING:
if (mods & GDK_BUTTON1_MASK) { window = gtk_widget_get_window(widget);
gtk_knob_update_mouse (knob, x, y, TRUE); if (event->is_hint || (event->window != window)) {
return TRUE; GdkModifierType mods;
} GdkDeviceManager *device_manager = gdk_display_get_device_manager(gdk_window_get_display(window));
else if (mods & GDK_BUTTON3_MASK) { GdkDevice *pointer = gdk_device_manager_get_client_pointer(device_manager);
gtk_knob_update_mouse (knob, x, y, FALSE);
return TRUE; gdk_window_get_device_position(window, pointer, &x, &y, &mods);
} if (mods & GDK_BUTTON1_MASK) {
gtk_knob_update_mouse (knob, x, y, TRUE);
return TRUE;
}
else if (mods & GDK_BUTTON3_MASK) {
gtk_knob_update_mouse (knob, x, y, FALSE);
return TRUE;
}
}
break; break;
} }

44
gui.c
View File

@@ -120,7 +120,7 @@ void show_error_message(GtkWidget *parent, gchar *message)
GTK_BUTTONS_OK, GTK_BUTTONS_OK,
"%s", message); "%s", message);
gtk_dialog_run(GTK_DIALOG(msg)); (void)gtk_dialog_run(GTK_DIALOG(msg));
gtk_widget_destroy(msg); gtk_widget_destroy(msg);
} }
@@ -567,27 +567,34 @@ void combo_box_changed_cb(GtkComboBox *widget, gpointer data)
vbox = g_object_get_data(G_OBJECT(widget), "vbox"); vbox = g_object_get_data(G_OBJECT(widget), "vbox");
if (x != -1) { if (x != -1) {
GtkWidget *new_child = NULL;
name = g_strdup_printf("SettingsGroup%d", x); name = g_strdup_printf("SettingsGroup%d", x);
settings = g_object_get_data(G_OBJECT(widget), name); settings = g_object_get_data(G_OBJECT(widget), name);
g_free(name); g_free(name);
if (settings != NULL && allow_send)
set_option(settings->id, settings->position, settings->type);
child = g_object_get_data(G_OBJECT(widget), "active_child"); child = g_object_get_data(G_OBJECT(widget), "active_child");
if (child == settings->child) { if (settings != NULL)
return; {
if (allow_send)
set_option(settings->id, settings->position, settings->type);
if (child == settings->child) {
return;
}
} }
if (child != NULL) { if (child != NULL) {
gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(gtk_widget_get_parent(vbox))), child); gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(gtk_widget_get_parent(vbox))), child);
} }
if (settings->child != NULL) { if (settings != NULL && settings->child != NULL) {
gtk_container_add(GTK_CONTAINER(gtk_widget_get_parent(gtk_widget_get_parent(vbox))), settings->child); gtk_container_add(GTK_CONTAINER(gtk_widget_get_parent(gtk_widget_get_parent(vbox))), settings->child);
gtk_widget_show_all(gtk_widget_get_parent(gtk_widget_get_parent(vbox))); gtk_widget_show_all(gtk_widget_get_parent(gtk_widget_get_parent(vbox)));
new_child = settings->child;
} }
g_object_set_data(G_OBJECT(widget), "active_child", settings->child);
g_object_set_data(G_OBJECT(widget), "active_child", new_child);
} }
} }
@@ -1080,10 +1087,9 @@ static void action_open_preset_cb(GtkAction *action)
section = get_genetx_section_id(genetx->version, section = get_genetx_section_id(genetx->version,
genetx->type); genetx->type);
bank = 0x04; bank = 0x04;
index = genetx->channel;
if (i == 0) { if (i != 0) {
index = genetx->channel;
} else {
if (genetx->channel == GENETX_CHANNEL1) { if (genetx->channel == GENETX_CHANNEL1) {
index = GENETX_CHANNEL1_CUSTOM; index = GENETX_CHANNEL1_CUSTOM;
} else if (genetx->channel == GENETX_CHANNEL2) { } else if (genetx->channel == GENETX_CHANNEL2) {
@@ -1133,15 +1139,10 @@ static void action_save_preset_cb(GtkAction *action)
GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
NULL); NULL);
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) { if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
GError *error = NULL;
gchar *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); gchar *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
if (filename == NULL) {
show_error_message(window, "No file name");
if (error) {
show_error_message(window, error->message);
g_error_free(error);
error = NULL;
} else { } else {
gchar real_filename[256]; gchar real_filename[256];
GList *list = get_current_preset(); GList *list = get_current_preset();
@@ -1154,8 +1155,8 @@ static void action_save_preset_cb(GtkAction *action)
write_preset_to_xml(preset, real_filename); write_preset_to_xml(preset, real_filename);
preset_free(preset); preset_free(preset);
g_free(filename);
} }
g_free(filename);
} }
gtk_widget_destroy(dialog); gtk_widget_destroy(dialog);
@@ -1462,13 +1463,14 @@ gint select_device_dialog (GList *devices)
combo_box = gtk_combo_box_text_new(); combo_box = gtk_combo_box_text_new();
device = g_list_first(devices); device = g_list_first(devices);
do { while (device != NULL) {
char *name; char *name;
snd_card_get_longname(GPOINTER_TO_INT(device->data), &name); snd_card_get_longname(GPOINTER_TO_INT(device->data), &name);
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(combo_box), NULL, name); gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(combo_box), NULL, name);
} while ((device = g_list_next(device))); device = g_list_next(device);
};
gtk_container_add(GTK_CONTAINER(vbox), combo_box); gtk_container_add(GTK_CONTAINER(vbox), combo_box);