@@ -145,7 +145,11 @@ static int open_dwarf_file(char *path)
145
145
146
146
static void close_dwarf_file (void )
147
147
{
148
+ if (dwarf == NULL )
149
+ return ;
150
+
148
151
dwarf_end (dwarf );
152
+ dwarf = NULL ;
149
153
150
154
gtk_tree_store_clear (arg -> main_store );
151
155
gtk_tree_store_clear (arg -> attr_store );
@@ -176,7 +180,6 @@ static void close_dwarf_file(void)
176
180
}
177
181
178
182
g_free (arg -> filename );
179
-
180
183
g_free (arg );
181
184
}
182
185
@@ -916,9 +919,6 @@ static void on_file_open(GtkMenuItem *menu, gpointer *window)
916
919
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN ;
917
920
GtkFileChooser * chooser ;
918
921
919
- if (dwarf != NULL )
920
- return ;
921
-
922
922
dialog = gtk_file_chooser_dialog_new ("Open File" , GTK_WINDOW (window ), action ,
923
923
"_Cancel" , GTK_RESPONSE_CANCEL ,
924
924
"_Open" , GTK_RESPONSE_ACCEPT ,
@@ -934,6 +934,7 @@ static void on_file_open(GtkMenuItem *menu, gpointer *window)
934
934
filename = gtk_file_chooser_get_filename (chooser );
935
935
gtk_widget_destroy (dialog );
936
936
937
+ close_dwarf_file ();
937
938
res = open_dwarf_file (filename );
938
939
if (res != 0 )
939
940
show_warning (GTK_WIDGET (window ), "Error: %s: %s\n" ,
@@ -944,11 +945,7 @@ static void on_file_open(GtkMenuItem *menu, gpointer *window)
944
945
945
946
static void on_file_close (GtkMenuItem * menu , gpointer * unused )
946
947
{
947
- if (dwarf == NULL )
948
- return ;
949
-
950
948
close_dwarf_file ();
951
- dwarf = NULL ;
952
949
}
953
950
954
951
static gboolean on_attr_press (GtkWidget * widget , GdkEvent * event , gpointer data )
0 commit comments