SF.net SVN: geany:[3687] trunk
eht16 at users.sourceforge.net
eht16 at xxxxx
Sun Apr 5 21:07:41 UTC 2009
Revision: 3687
http://geany.svn.sourceforge.net/geany/?rev=3687&view=rev
Author: eht16
Date: 2009-04-05 21:07:40 +0000 (Sun, 05 Apr 2009)
Log Message:
-----------
Start using G_LIKELY/G_UNLIKELY macros to gain a little more performance when building the code with gcc.
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/build.c
trunk/src/callbacks.c
trunk/src/dialogs.c
trunk/src/document.c
trunk/src/document.h
trunk/src/editor.c
trunk/src/encodings.c
trunk/src/filetypes.c
trunk/src/geanymenubuttonaction.c
trunk/src/geanyobject.c
trunk/src/geanywraplabel.c
trunk/src/highlighting.c
trunk/src/keybindings.c
trunk/src/keyfile.c
trunk/src/log.c
trunk/src/main.c
trunk/src/msgwindow.c
trunk/src/navqueue.c
trunk/src/notebook.c
trunk/src/plugins.c
trunk/src/prefs.c
trunk/src/queue.c
trunk/src/sciwrappers.c
trunk/src/socket.c
trunk/src/symbols.c
trunk/src/templates.c
trunk/src/toolbar.c
trunk/src/tools.c
trunk/src/tools.h
trunk/src/treeviews.c
trunk/src/ui_utils.c
trunk/src/utils.c
trunk/src/utils.h
trunk/src/vte.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2009-04-05 19:58:30 UTC (rev 3686)
+++ trunk/ChangeLog 2009-04-05 21:07:40 UTC (rev 3687)
@@ -9,6 +9,17 @@
(#2728630, patch by Elias Pschernig, thanks).
* doc/geany.txt, doc/geany.html:
Describe how to build Geany using the Waf build system.
+ * src/build.c, src/callbacks.c, src/dialogs.c, src/document.c,
+ src/document.h, src/editor.c, src/encodings.c, src/filetypes.c,
+ src/geanymenubuttonaction.c, src/geanyobject.c, src/geanywraplabel.c,
+ src/highlighting.c, src/keybindings.c, src/keyfile.c, src/log.c,
+ src/main.c, src/msgwindow.c, src/navqueue.c, src/notebook.c,
+ src/plugins.c, src/prefs.c, src/queue.c, src/sciwrappers.c,
+ src/socket.c, src/symbols.c, src/templates.c, src/toolbar.c,
+ src/tools.c, src/tools.h, src/treeviews.c, src/ui_utils.c,
+ src/utils.c, src/utils.h, src/vte.c:
+ Start using G_LIKELY/G_UNLIKELY macros to gain a little more
+ performance when building the code with gcc.
2009-04-03 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
Modified: trunk/src/build.c
===================================================================
--- trunk/src/build.c 2009-04-05 19:58:30 UTC (rev 3686)
+++ trunk/src/build.c 2009-04-05 21:07:40 UTC (rev 3687)
@@ -1570,11 +1570,11 @@
BuildMenuItems *menu_items;
static GtkWidget *menubar_build_menu = NULL;
- if (menubar_build_menu == NULL) /* cache the build menu pointer */
+ if (G_UNLIKELY(menubar_build_menu == NULL)) /* cache the build menu pointer */
menubar_build_menu = ui_lookup_widget(main_widgets.window, "menu_build1");
if (doc == NULL)
doc = document_get_current();
- if (doc == NULL ||
+ if (G_UNLIKELY(doc == NULL) ||
(FILETYPE_ID(doc->file_type) == GEANY_FILETYPES_NONE && doc->file_name == NULL))
{
gtk_widget_set_sensitive(menubar_build_menu, FALSE);
@@ -1588,7 +1588,7 @@
gtk_widget_set_sensitive(menubar_build_menu, TRUE);
ft = doc->file_type;
- g_return_if_fail(ft != NULL);
+ g_return_if_fail(G_LIKELY(ft != NULL));
menu_items = build_get_menu_items(ft->id);
/* Note: don't remove the submenu first because it can now cause an X hang if
@@ -1596,7 +1596,7 @@
gtk_menu_item_set_submenu(GTK_MENU_ITEM(menubar_build_menu),
menu_items->menu);
- have_path = (doc->file_name != NULL);
+ have_path = G_LIKELY(doc->file_name != NULL);
can_make = have_path && build_info.pid <= (GPid) 1;
@@ -1853,7 +1853,7 @@
{
static GtkWidget *dialog = NULL; /* keep dialog for combo history */
- if (! dialog)
+ if (G_UNLIKELY(! dialog))
dialog = dialogs_show_input(_("Make Custom Target"),
_("Enter custom options here, all entered text is passed to the make command."),
build_info.custom_target, TRUE, &on_make_custom_input_response);
@@ -2055,7 +2055,7 @@
widgets.build_action = toolbar_get_action_by_name("Build");
toolmenu = geany_menu_button_action_get_menu(GEANY_MENU_BUTTON_ACTION(widgets.build_action));
- if (toolmenu != NULL)
+ if (G_UNLIKELY(toolmenu != NULL))
{
/* build the code */
item = ui_image_menu_item_new(GEANY_STOCK_BUILD, _("_Build"));
Modified: trunk/src/callbacks.c
===================================================================
--- trunk/src/callbacks.c 2009-04-05 19:58:30 UTC (rev 3686)
+++ trunk/src/callbacks.c 2009-04-05 21:07:40 UTC (rev 3687)
@@ -95,7 +95,7 @@
for (i = 0; i < documents_array->len; i++)
{
- if (documents[i]->is_valid && documents[i]->changed)
+ if (documents[i]->is_valid && G_UNLIKELY(documents[i]->changed))
{
return FALSE;
}
@@ -179,9 +179,9 @@
gint cur_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(main_widgets.notebook));
GeanyDocument *doc = document_get_current();
- if (doc != NULL && cur_page >= 0)
+ if (G_LIKELY(doc != NULL) && G_LIKELY(cur_page >= 0))
{
- if (doc->file_name == NULL)
+ if (G_UNLIKELY(doc->file_name == NULL))
dialogs_show_save_as();
else
document_save_file(doc, FALSE);
@@ -208,7 +208,7 @@
{
doc = document_get_from_page(i);
if (! doc->changed) continue;
- if (doc->file_name == NULL)
+ if (G_UNLIKELY(doc->file_name == NULL))
{
/* display unnamed document */
gtk_notebook_set_current_page(GTK_NOTEBOOK(main_widgets.notebook),
@@ -237,7 +237,7 @@
{
GeanyDocument *doc = document_get_current();
- if (doc)
+ if (G_LIKELY(doc))
document_close(doc);
}
@@ -282,7 +282,7 @@
{
GeanyDocument *doc = document_get_current();
- if (doc != NULL && document_can_undo(doc))
+ if (G_LIKELY(doc != NULL) && document_can_undo(doc))
{
sci_cancel(doc->editor->sci);
document_undo(doc);
@@ -296,7 +296,7 @@
{
GeanyDocument *doc = document_get_current();
- if (doc != NULL && document_can_redo(doc))
+ if (G_LIKELY(doc != NULL) && document_can_redo(doc))
{
sci_cancel(doc->editor->sci);
document_redo(doc);
@@ -314,7 +314,7 @@
if (GTK_IS_EDITABLE(focusw))
gtk_editable_cut_clipboard(GTK_EDITABLE(focusw));
else
- if (IS_SCINTILLA(focusw) && doc != NULL)
+ if (IS_SCINTILLA(focusw) && G_LIKELY(doc != NULL))
sci_cut(doc->editor->sci);
else
if (GTK_IS_TEXT_VIEW(focusw))
@@ -336,7 +336,7 @@
if (GTK_IS_EDITABLE(focusw))
gtk_editable_copy_clipboard(GTK_EDITABLE(focusw));
else
- if (IS_SCINTILLA(focusw) && doc != NULL)
+ if (IS_SCINTILLA(focusw) && G_LIKELY(doc != NULL))
sci_copy(doc->editor->sci);
else
if (GTK_IS_TEXT_VIEW(focusw))
@@ -358,7 +358,7 @@
if (GTK_IS_EDITABLE(focusw))
gtk_editable_paste_clipboard(GTK_EDITABLE(focusw));
else
- if (IS_SCINTILLA(focusw) && doc != NULL)
+ if (IS_SCINTILLA(focusw) && G_LIKELY(doc != NULL))
{
sci_paste(doc->editor->sci);
}
@@ -383,7 +383,7 @@
if (GTK_IS_EDITABLE(focusw))
gtk_editable_delete_selection(GTK_EDITABLE(focusw));
else
- if (IS_SCINTILLA(focusw) && doc != NULL && sci_has_selection(doc->editor->sci))
+ if (IS_SCINTILLA(focusw) && G_LIKELY(doc != NULL) && sci_has_selection(doc->editor->sci))
sci_clear(doc->editor->sci);
else
if (GTK_IS_TEXT_VIEW(focusw))
@@ -449,11 +449,12 @@
gint i = GPOINTER_TO_INT(user_data);
gchar *charset = NULL;
- if (doc == NULL || doc->file_name == NULL)
+ if (G_UNLIKELY(doc == NULL) || G_UNLIKELY(doc->file_name == NULL))
return;
if (i >= 0)
{
- if (i >= GEANY_ENCODINGS_MAX || encodings[i].charset == NULL) return;
+ if (G_UNLIKELY(i >= GEANY_ENCODINGS_MAX) || G_UNLIKELY(encodings[i].charset == NULL))
+ return;
charset = encodings[i].charset;
}
@@ -631,9 +632,9 @@
gpointer user_data)
{
GeanyDocument *doc = document_get_current();
- static gboolean done = 1;
+ static gint done = 1;
- if (doc != NULL)
+ if (G_LIKELY(doc != NULL))
{
if (done++ % 3 == 0)
sci_set_line_numbers(doc->editor->sci, editor_prefs.show_linenumber_margin,
@@ -662,7 +663,7 @@
gpointer user_data)
{
GeanyDocument *doc = document_get_current();
- if (doc != NULL)
+ if (G_LIKELY(doc != NULL))
{
sci_zoom_off(doc->editor->sci);
sci_set_line_numbers(doc->editor->sci, editor_prefs.show_linenumber_margin, 0);
@@ -712,7 +713,7 @@
{
GeanyDocument *doc;
- if (main_status.opening_session_files || main_status.closing_all)
+ if (G_UNLIKELY(main_status.opening_session_files) || G_UNLIKELY(main_status.closing_all))
return;
if (page_num == (guint) -1 && page != NULL)
@@ -720,7 +721,7 @@
else
doc = document_get_from_page(page_num);
- if (doc != NULL)
+ if (G_LIKELY(doc != NULL))
{
treeviews_select_openfiles_item(doc);
document_set_text_changed(doc, doc->changed); /* also sets window title and status bar */
@@ -769,7 +770,8 @@
gpointer user_data)
{
GeanyDocument *doc = document_get_current();
- if (ignore_callback || doc == NULL) return;
+ if (ignore_callback || G_UNLIKELY(doc == NULL))
+ return;
sci_convert_eols(doc->editor->sci, SC_EOL_CRLF);
sci_set_eol_mode(doc->editor->sci, SC_EOL_CRLF);
}
@@ -780,7 +782,8 @@
gpointer user_data)
{
GeanyDocument *doc = document_get_current();
- if (ignore_callback || doc == NULL) return;
+ if (ignore_callback || G_UNLIKELY(doc == NULL))
+ return;
sci_convert_eols(doc->editor->sci, SC_EOL_LF);
sci_set_eol_mode(doc->editor->sci, SC_EOL_LF);
}
@@ -791,7 +794,8 @@
gpointer user_data)
{
GeanyDocument *doc = document_get_current();
- if (ignore_callback || doc == NULL) return;
+ if (ignore_callback || G_UNLIKELY(doc == NULL))
+ return;
sci_convert_eols(doc->editor->sci, SC_EOL_CR);
sci_set_eol_mode(doc->editor->sci, SC_EOL_CR);
}
@@ -803,7 +807,7 @@
{
GeanyDocument *doc = document_get_current();
- if (doc != NULL)
+ if (G_LIKELY(doc != NULL))
editor_replace_tabs(doc->editor);
}
@@ -854,7 +858,7 @@
gchar *text;
gboolean keep_sel = TRUE;
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return;
sci = doc->editor->sci;
@@ -1004,7 +1008,7 @@
if (! ignore_callback)
{
GeanyDocument *doc = document_get_current();
- if (doc != NULL)
+ if (G_LIKELY(doc != NULL))
editor_set_line_wrapping(doc->editor, ! doc->editor->line_wrapping);
}
}
@@ -1017,7 +1021,7 @@
if (! ignore_callback)
{
GeanyDocument *doc = document_get_current();
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return;
doc->readonly = ! doc->readonly;
sci_set_readonly(doc->editor->sci, doc->readonly);
@@ -1034,7 +1038,7 @@
if (! ignore_callback)
{
GeanyDocument *doc = document_get_current();
- if (doc != NULL)
+ if (G_LIKELY(doc != NULL))
doc->editor->auto_indent = ! doc->editor->auto_indent;
}
}
@@ -1046,7 +1050,7 @@
gchar *search_text;
GeanyDocument *doc = document_get_current();
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return;
if (sci_has_selection(doc->editor->sci))
@@ -1090,7 +1094,7 @@
GTK_MENU_ITEM(ui_lookup_widget(main_widgets.editor_menu, "goto_tag_definition1")));
GeanyDocument *doc = document_get_current();
- g_return_if_fail(doc != NULL);
+ g_return_if_fail(G_LIKELY(doc != NULL));
sci_set_current_position(doc->editor->sci, editor_info.click_pos, FALSE);
symbols_goto_tag(editor_info.current_word, definition);
@@ -1113,7 +1117,7 @@
GeanyDocument *doc = document_get_current();
gint pos;
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return;
pos = sci_get_current_position(doc->editor->sci);
@@ -1142,7 +1146,7 @@
{
GeanyDocument *doc = document_get_current();
- g_return_if_fail(doc != NULL);
+ g_return_if_fail(G_LIKELY(doc != NULL));
if (search_data.text)
{
@@ -1223,7 +1227,7 @@
{
GeanyDocument *doc = document_get_current();
- if (doc != NULL)
+ if (G_LIKELY(doc != NULL))
{
if (! editor_goto_line(doc->editor, (gint) val - 1))
utils_beep();
@@ -1237,7 +1241,7 @@
{
GeanyDocument *doc = document_get_current();
- if (doc != NULL)
+ if (G_LIKELY(doc != NULL))
{
gint line = atoi(text);
if (! editor_goto_line(doc->editor, line - 1))
@@ -1313,7 +1317,7 @@
const gchar *cur_tag = NULL;
gint line = -1, pos = 0;
- if (doc == NULL || doc->file_type == NULL)
+ if (G_UNLIKELY(doc == NULL) || G_UNLIKELY(doc->file_type == NULL))
{
ui_set_statusbar(FALSE,
_("Please set the filetype for the current file before using this function."));
@@ -1338,7 +1342,7 @@
{
GeanyDocument *doc = document_get_current();
- if (doc == NULL || doc->file_type == NULL)
+ if (G_UNLIKELY(doc == NULL) || G_UNLIKELY(doc->file_type == NULL))
{
ui_set_statusbar(FALSE,
_("Please set the filetype for the current file before using this function."));
@@ -1358,7 +1362,7 @@
GeanyDocument *doc = document_get_current();
gchar *text;
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return;
text = templates_get_template_licence(FILETYPE_ID(doc->file_type), GEANY_TEMPLATE_GPL);
@@ -1378,7 +1382,7 @@
GeanyDocument *doc = document_get_current();
gchar *text;
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return;
text = templates_get_template_licence(FILETYPE_ID(doc->file_type), GEANY_TEMPLATE_BSD);
@@ -1398,7 +1402,7 @@
GeanyDocument *doc = document_get_current();
gchar *text;
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return;
text = templates_get_template_changelog();
@@ -1420,7 +1424,7 @@
gchar *fname;
GeanyFiletype *ft;
- g_return_if_fail(doc != NULL);
+ g_return_if_fail(G_LIKELY(doc != NULL));
ft = doc->file_type;
fname = doc->file_name;
@@ -1447,7 +1451,8 @@
gchar *format;
gchar *time_str;
- if (doc == NULL) return;
+ if (G_UNLIKELY(doc == NULL))
+ return;
if (utils_str_equal(_("dd.mm.yyyy"), (gchar*) user_data))
format = "%d.%m.%Y";
@@ -1479,7 +1484,7 @@
}
time_str = utils_get_date_time(format, NULL);
- if (time_str != NULL)
+ if (G_UNLIKELY(time_str != NULL))
{
verify_click_pos(doc); /* make sure that the click_pos is valid */
@@ -1504,7 +1509,8 @@
gint pos = -1;
gchar *text;
- if (doc == NULL || user_data == NULL) return;
+ if (G_UNLIKELY(doc == NULL) || G_UNLIKELY(user_data == NULL))
+ return;
verify_click_pos(doc); /* make sure that the click_pos is valid */
@@ -1520,7 +1526,7 @@
sci_insert_text(doc->editor->sci, editor_info.click_pos, text);
g_free(text);
- if (pos >= 0)
+ if (G_LIKELY(pos >= 0))
sci_goto_pos(doc->editor->sci, pos, FALSE);
}
@@ -1539,7 +1545,7 @@
gpointer user_data)
{
GeanyDocument *doc = document_get_current();
- if (doc != NULL)
+ if (G_LIKELY(doc != NULL))
editor_fold_all(doc->editor);
}
@@ -1549,7 +1555,7 @@
gpointer user_data)
{
GeanyDocument *doc = document_get_current();
- if (doc != NULL)
+ if (G_LIKELY(doc != NULL))
editor_unfold_all(doc->editor);
}
@@ -1568,7 +1574,7 @@
{
GeanyDocument *doc = document_get_current();
- if (doc != NULL)
+ if (G_LIKELY(doc != NULL))
editor_indicator_clear(doc->editor, GEANY_INDICATOR_ERROR);
}
@@ -1580,11 +1586,11 @@
GeanyDocument *doc = document_get_current();
guint i = GPOINTER_TO_INT(user_data);
- if (ignore_callback || doc == NULL || encodings[i].charset == NULL ||
+ if (ignore_callback || G_UNLIKELY(doc == NULL) || G_UNLIKELY(encodings[i].charset == NULL) ||
utils_str_equal(encodings[i].charset, doc->encoding))
return;
- if (doc->readonly)
+ if (G_UNLIKELY(doc->readonly))
{
utils_beep();
return;
@@ -1600,7 +1606,7 @@
gpointer user_data)
{
GeanyDocument *doc = document_get_current();
- if (doc != NULL)
+ if (G_LIKELY(doc != NULL))
printing_print_doc(doc);
}
@@ -1611,7 +1617,7 @@
{
GeanyDocument *doc = document_get_current();
- if (doc != NULL)
+ if (G_LIKELY(doc != NULL))
sci_select_all(doc->editor->sci);
}
@@ -1652,9 +1658,9 @@
{
GeanyDocument *doc = document_get_current();
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return;
- if (doc->readonly)
+ if (G_UNLIKELY(doc->readonly))
{
utils_beep();
return;
@@ -1674,7 +1680,7 @@
gpointer user_data)
{
GeanyDocument *doc = document_get_current();
- if (doc != NULL)
+ if (G_LIKELY(doc != NULL))
editor_do_comment(doc->editor, -1, FALSE, FALSE);
}
@@ -1684,7 +1690,7 @@
gpointer user_data)
{
GeanyDocument *doc = document_get_current();
- if (doc != NULL)
+ if (G_LIKELY(doc != NULL))
editor_do_uncomment(doc->editor, -1, FALSE);
}
@@ -1695,7 +1701,7 @@
gpointer user_data)
{
GeanyDocument *doc = document_get_current();
- if (doc != NULL)
+ if (G_LIKELY(doc != NULL))
editor_do_comment_toggle(doc->editor);
}
@@ -1725,7 +1731,7 @@
gpointer user_data)
{
GeanyDocument *doc = document_get_current();
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return;
if (sci_get_lines_selected(doc->editor->sci) > 1)
@@ -1744,7 +1750,7 @@
gpointer user_data)
{
GeanyDocument *doc = document_get_current();
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return;
if (sci_get_lines_selected(doc->editor->sci) > 1)
@@ -1862,7 +1868,7 @@
static GtkWidget *item_close = NULL;
static GtkWidget *item_properties = NULL;
- if (item_close == NULL)
+ if (G_UNLIKELY(item_close == NULL))
{
item_close = ui_lookup_widget(main_widgets.window, "project_close1");
item_properties = ui_lookup_widget(main_widgets.window, "project_properties1");
@@ -1880,7 +1886,7 @@
GeanyDocument *doc = document_get_current();
gchar *sel = NULL;
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return;
sel = editor_get_default_selection(doc->editor, TRUE, GEANY_WORDCHARS"./-");
@@ -1924,7 +1930,7 @@
{
GeanyDocument *doc = document_get_current();
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return;
sci_marker_delete_all(doc->editor->sci, 0); /* delete the yellow tag marker */
@@ -1949,7 +1955,7 @@
GError *error = NULL;
GeanyDocument *doc = document_get_current();
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return;
if (sci_has_selection(doc->editor->sci))
@@ -1974,7 +1980,7 @@
}
/* substitute the wildcard %s and run the command if it is non empty */
- if (command != NULL && *command != '\0')
+ if (NZV(command))
{
command = utils_str_replace(command, "%s", word);
@@ -2001,7 +2007,7 @@
ui_lookup_widget(main_widgets.window, "menu_show_toolbar1"));
/* get the initial state (necessary if Geany was closed with hide_all = TRUE) */
- if (hide_all == -1)
+ if (G_UNLIKELY(hide_all == -1))
{
if (! gtk_check_menu_item_get_active(msgw) &&
! interface_prefs.show_notebook_tabs &&
@@ -2074,7 +2080,7 @@
{
GeanyDocument *doc = document_get_current();
- if (doc == NULL || ignore_callback)
+ if (G_UNLIKELY(doc == NULL) || ignore_callback)
return;
editor_set_indent_type(doc->editor, type);
@@ -2116,7 +2122,7 @@
return;
doc = document_get_current();
- g_return_if_fail(doc != NULL);
+ g_return_if_fail(G_LIKELY(doc != NULL));
editor_strip_trailing_spaces(doc->editor);
}
@@ -2159,7 +2165,7 @@
return;
doc = document_get_current();
- g_return_if_fail(doc != NULL);
+ g_return_if_fail(G_LIKELY(doc != NULL));
doc->editor->line_breaking = !doc->editor->line_breaking;
}
@@ -2170,7 +2176,7 @@
{
GeanyDocument *doc = document_get_current();
- if (doc != NULL)
+ if (G_LIKELY(doc != NULL))
editor_replace_spaces(doc->editor);
}
@@ -2198,13 +2204,13 @@
gpointer user_data)
{
guint i;
- GeanyDocument *cur_doc = document_get_current();
+ GeanyDocument *doc, *cur_doc = document_get_current();
for (i = 0; i < documents_array->len; i++)
{
- GeanyDocument *doc = documents[i];
+ doc = documents[i];
- if (doc == cur_doc || ! doc->is_valid)
+ if (G_UNLIKELY(doc == cur_doc) || ! doc->is_valid)
continue;
if (! document_close(doc))
Modified: trunk/src/dialogs.c
===================================================================
--- trunk/src/dialogs.c 2009-04-05 19:58:30 UTC (rev 3686)
+++ trunk/src/dialogs.c 2009-04-05 21:07:40 UTC (rev 3687)
@@ -141,7 +141,7 @@
gchar *filename = gtk_file_chooser_get_filename(filechooser);
gboolean is_on = gtk_file_chooser_get_show_hidden(filechooser);
- if (filename)
+ if (G_LIKELY(filename))
{
/* try to get the UTF-8 equivalent for the filename, fallback to filename if error */
gchar *utf8_filename = utils_get_utf8_from_locale(filename);
@@ -218,7 +218,7 @@
filetypes_create_file_filter_all_source());
foreach_slist(ft, node, filetypes_by_title)
{
- if (ft->id == GEANY_FILETYPES_NONE)
+ if (G_UNLIKELY(ft->id == GEANY_FILETYPES_NONE))
continue;
gtk_combo_box_append_text(GTK_COMBO_BOX(filetype_combo), ft->title);
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(ui_widgets.open_filesel),
@@ -268,7 +268,7 @@
/* We use the same file selection widget each time, so first of all we create it
* if it hasn't already been created. */
- if (ui_widgets.open_filesel == NULL)
+ if (G_UNLIKELY(ui_widgets.open_filesel == NULL))
create_open_file_dialog();
if (initdir != NULL)
@@ -516,7 +516,7 @@
gint resp;
gboolean folder_set = FALSE;
- if (ui_widgets.save_filesel == NULL)
+ if (G_UNLIKELY(ui_widgets.save_filesel == NULL))
create_save_file_dialog();
gtk_file_chooser_unselect_all(GTK_FILE_CHOOSER(ui_widgets.save_filesel));
@@ -704,7 +704,7 @@
document_get_notebook_page(doc));
main_status.quitting = old_quitting_state;
- if (doc->file_name != NULL)
+ if (G_LIKELY(doc->file_name != NULL))
{
short_fn = g_path_get_basename(doc->file_name);
}
@@ -959,9 +959,9 @@
GtkWidget *dialog, *label, *spin, *vbox;
gboolean res = FALSE;
- g_return_val_if_fail(title != NULL, FALSE);
- g_return_val_if_fail(label_text != NULL, FALSE);
- g_return_val_if_fail(value != NULL, FALSE);
+ g_return_val_if_fail(G_LIKELY(title != NULL), FALSE);
+ g_return_val_if_fail(G_LIKELY(label_text != NULL), FALSE);
+ g_return_val_if_fail(G_LIKELY(value != NULL), FALSE);
dialog = gtk_dialog_new_with_buttons(title, GTK_WINDOW(main_widgets.window),
GTK_DIALOG_DESTROY_WITH_PARENT,
@@ -1023,7 +1023,7 @@
# define S_IXOTH 0
#endif
- if (doc == NULL || doc->file_name == NULL)
+ if (G_UNLIKELY(doc == NULL) || G_UNLIKELY(doc->file_name == NULL))
{
dialogs_show_msgbox(GTK_MESSAGE_ERROR,
_("An error occurred or file information could not be retrieved (e.g. from a new file)."));
Modified: trunk/src/document.c
===================================================================
--- trunk/src/document.c 2009-04-05 19:58:30 UTC (rev 3686)
+++ trunk/src/document.c 2009-04-05 21:07:40 UTC (rev 3687)
@@ -131,14 +131,15 @@
{
guint i;
- if (! realname)
+ if (G_UNLIKELY(! realname))
return NULL; /* file doesn't exist on disk */
for (i = 0; i < documents_array->len; i++)
{
GeanyDocument *doc = documents[i];
- if (! documents[i]->is_valid || ! doc->real_path) continue;
+ if (! doc->is_valid || G_UNLIKELY(! doc->real_path))
+ continue;
if (filenamecmp(realname, doc->real_path) == 0)
{
@@ -177,7 +178,7 @@
GeanyDocument *doc;
gchar *realname;
- if (! utf8_filename)
+ if (G_UNLIKELY(! utf8_filename))
return NULL;
/* First search GeanyDocument::file_name, so we can find documents with a
@@ -186,7 +187,8 @@
{
doc = documents[i];
- if (! documents[i]->is_valid || doc->file_name == NULL) continue;
+ if (! doc->is_valid || G_UNLIKELY(doc->file_name == NULL))
+ continue;
if (filenamecmp(utf8_filename, doc->file_name) == 0)
{
@@ -206,7 +208,7 @@
{
guint i;
- if (sci == NULL)
+ if (G_UNLIKELY(sci == NULL))
return NULL;
for (i = 0; i < documents_array->len; i++)
@@ -221,7 +223,7 @@
/* returns the index of the notebook page for the document. */
gint document_get_notebook_page(GeanyDocument *doc)
{
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return -1;
return gtk_notebook_page_num(GTK_NOTEBOOK(main_widgets.notebook),
@@ -240,7 +242,7 @@
{
ScintillaObject *sci;
- if (page_num >= documents_array->len)
+ if (G_UNLIKELY(page_num >= documents_array->len))
return NULL;
sci = (ScintillaObject*)gtk_notebook_get_nth_page(
@@ -259,7 +261,7 @@
{
gint cur_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(main_widgets.notebook));
- if (cur_page == -1)
+ if (G_UNLIKELY(cur_page == -1))
return NULL;
else
{
@@ -288,7 +290,7 @@
gchar *base_name;
GtkWidget *parent;
- g_return_if_fail(doc != NULL);
+ g_return_if_fail(G_LIKELY(doc != NULL));
base_name = g_path_get_basename(DOC_FILENAME(doc));
/* we need to use the event box for the tooltip, labels don't get the necessary events */
@@ -313,12 +315,12 @@
**/
void document_set_text_changed(GeanyDocument *doc, gboolean changed)
{
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return;
doc->changed = changed;
- if (! main_status.quitting)
+ if (G_LIKELY(! main_status.quitting))
{
ui_update_tab_status(doc);
ui_save_buttons_toggle(changed);
@@ -395,7 +397,7 @@
/* Set the file status to 'changed' after a single 'created' event. */
static gboolean monitor_finish_pending_create(gpointer doc)
{
- g_return_val_if_fail(doc != NULL, FALSE);
+ g_return_val_if_fail(G_LIKELY(doc != NULL), FALSE);
((GeanyDocument *)doc)->priv->file_disk_status = FILE_CHANGED;
ui_update_tab_status(doc);
@@ -407,7 +409,7 @@
/* Resets the 'ignore' file status after a reload action. */
static gboolean monitor_reset_ignore(gpointer doc)
{
- g_return_val_if_fail(doc != NULL, FALSE);
+ g_return_val_if_fail(G_LIKELY(doc != NULL), FALSE);
((GeanyDocument *)doc)->priv->file_disk_status = FILE_OK;
ui_update_tab_status(doc);
@@ -419,7 +421,7 @@
static void monitor_file_changed_cb(G_GNUC_UNUSED GFileMonitor *monitor, G_GNUC_UNUSED GFile *file,
G_GNUC_UNUSED GFile *other_file, GFileMonitorEvent event, GeanyDocument *doc)
{
- g_return_if_fail(doc != NULL);
+ g_return_if_fail(G_LIKELY(doc != NULL));
if (file_prefs.disk_check_timeout == 0)
return;
@@ -492,7 +494,7 @@
void document_stop_file_monitoring(GeanyDocument *doc)
{
- g_return_if_fail(doc != NULL);
+ g_return_if_fail(G_LIKELY(doc != NULL));
if (doc->priv->monitor != NULL)
{
@@ -504,7 +506,7 @@
static void monitor_file_setup(GeanyDocument *doc)
{
- g_return_if_fail(doc != NULL);
+ g_return_if_fail(G_LIKELY(doc != NULL));
/* Disable file monitoring completely for remote files (i.e. remote GIO files) as GFileMonitor
* doesn't work at all for remote files and legacy polling is too slow. */
if (! doc->priv->is_remote)
@@ -602,7 +604,7 @@
**/
gboolean document_close(GeanyDocument *doc)
{
- g_return_val_if_fail(doc, FALSE);
+ g_return_val_if_fail(G_LIKELY(doc), FALSE);
return document_remove_page(document_get_notebook_page(doc));
}
@@ -620,7 +622,7 @@
{
GeanyDocument *doc = document_get_from_page(page_num);
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
{
g_warning("%s: page_num: %d", G_STRFUNC, page_num);
return FALSE;
@@ -710,7 +712,7 @@
{
GeanyDocument *doc = document_create(utf8_filename);
- g_assert(doc != NULL);
+ g_assert(G_LIKELY(doc != NULL));
sci_set_undo_collection(doc->editor->sci, FALSE); /* avoid creation of an undo action */
if (text)
@@ -812,7 +814,7 @@
{
gchar *converted_text = encodings_convert_to_utf8_from_charset(
filedata->data, filedata->size, forced_enc, FALSE);
- if (converted_text == NULL)
+ if (G_LIKELY(converted_text == NULL))
{
return FALSE;
}
@@ -834,8 +836,8 @@
static gboolean
handle_encoding(FileData *filedata, GeanyEncodingIndex enc_idx)
{
- g_return_val_if_fail(filedata->enc == NULL, FALSE);
- g_return_val_if_fail(filedata->bom == FALSE, FALSE);
+ g_return_val_if_fail(G_LIKELY(filedata->enc == NULL), FALSE);
+ g_return_val_if_fail(G_LIKELY(filedata->bom == FALSE), FALSE);
if (filedata->size == 0)
{
@@ -855,7 +857,7 @@
{
gchar *converted_text = encodings_convert_to_utf8_from_charset(
filedata->data, filedata->size, filedata->enc, FALSE);
- if (converted_text != NULL)
+ if (G_LIKELY(converted_text != NULL))
{
g_free(filedata->data);
filedata->data = converted_text;
@@ -885,7 +887,7 @@
gchar *converted_text = encodings_convert_to_utf8(filedata->data,
filedata->size, &filedata->enc);
- if (converted_text == NULL)
+ if (G_UNLIKELY(converted_text == NULL))
{
return FALSE;
}
@@ -1158,7 +1160,7 @@
{
GeanyDocument *doc = data;
- if (! doc || ! doc->is_valid || doc->tm_file == NULL)
+ if (G_UNLIKELY(! doc) || G_UNLIKELY(! doc->is_valid) || G_UNLIKELY(doc->tm_file == NULL))
return FALSE;
if (gtk_window_get_focus(GTK_WINDOW(main_widgets.window)) != GTK_WIDGET(doc->editor->sci))
@@ -1195,7 +1197,7 @@
else
{
/* filename must not be NULL when opening a file */
- if (filename == NULL)
+ if (G_UNLIKELY(filename == NULL))
{
ui_set_statusbar(FALSE, _("Invalid filename"));
return NULL;
@@ -1240,11 +1242,10 @@
if (! reload)
{
doc = document_create(utf8_filename);
- g_return_val_if_fail(doc != NULL, NULL); /* really should not happen */
+ g_return_val_if_fail(G_LIKELY(doc != NULL), NULL); /* really should not happen */
/* file exists on disk, set real_path */
- g_free(doc->real_path);
- doc->real_path = tm_get_real_path(locale_filename);
+ setptr(doc->real_path, tm_get_real_path(locale_filename));
doc->priv->is_remote = utils_is_remote_path(locale_filename);
monitor_file_setup(doc);
@@ -1312,7 +1313,7 @@
if (! main_status.opening_session_files)
ui_add_recent_file(utf8_filename);
- if (! reload && geany_object)
+ if (! reload)
g_signal_emit_by_name(geany_object, "document-open", doc);
if (reload)
@@ -1341,7 +1342,8 @@
gchar *filename;
gchar **list;
- if (data == NULL) return;
+ if (G_UNLIKELY(data == NULL))
+ return;
if (length < 0)
length = strlen(data);
@@ -1356,9 +1358,11 @@
for (i = 0; ; i++)
{
- if (list[i] == NULL) break;
+ if (list[i] == NULL)
+ break;
filename = g_filename_from_uri(list[i], NULL, NULL);
- if (filename == NULL) continue;
+ if (G_UNLIKELY(filename == NULL))
+ continue;
document_open_file(filename, FALSE, NULL, NULL);
g_free(filename);
}
@@ -1401,7 +1405,7 @@
gint pos = 0;
GeanyDocument *new_doc;
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return FALSE;
/* try to set the cursor to the position before reloading */
@@ -1426,7 +1430,7 @@
#if ! defined(HAVE_GIO) || ! defined(USE_GIO_FILEMON)
struct stat st;
- g_return_val_if_fail(doc != NULL, FALSE);
+ g_return_val_if_fail(G_LIKELY(doc != NULL), FALSE);
/* stat the file to get the timestamp, otherwise on Windows the actual
* timestamp can be ahead of time(NULL) */
@@ -1475,7 +1479,8 @@
gchar *filename;
struct TextToFind ttf;
- if (doc == NULL || doc->file_type == NULL) return;
+ if (G_UNLIKELY(doc == NULL) || G_UNLIKELY(doc->file_type == NULL))
+ return;
filebase = g_strconcat(GEANY_STRING_UNTITLED, ".", (doc->file_type)->extension, NULL);
filename = g_path_get_basename(doc->file_name);
@@ -1539,13 +1544,11 @@
{
gboolean ret;
- g_return_val_if_fail(doc != NULL, FALSE);
+ g_return_val_if_fail(G_LIKELY(doc != NULL), FALSE);
if (utf8_fname != NULL)
- {
- g_free(doc->file_name);
- doc->file_name = g_strdup(utf8_fname);
- }
+ setptr(doc->file_name, g_strdup(utf8_fname));
+
/* reset real path, it's retrieved again in document_save() */
setptr(doc->real_path, NULL);
@@ -1571,7 +1574,7 @@
monitor_file_setup(doc);
doc->priv->file_disk_status = FILE_IGNORE;
- if (ret)
+ if (G_LIKELY(ret))
ui_add_recent_file(doc->file_name);
return ret;
}
@@ -1584,14 +1587,14 @@
gsize bytes_read;
gsize conv_len;
- g_return_val_if_fail(data != NULL || *data == NULL, FALSE);
- g_return_val_if_fail(len != NULL, FALSE);
+ g_return_val_if_fail(G_LIKELY(data != NULL) || G_LIKELY(*data == NULL), FALSE);
+ g_return_val_if_fail(G_LIKELY(len != NULL), FALSE);
/* try to convert it from UTF-8 to original encoding */
conv_file_contents = g_convert(*data, *len - 1, doc->encoding, "UTF-8",
&bytes_read, &conv_len, &conv_error);
- if (conv_error != NULL)
+ if (G_UNLIKELY(conv_error != NULL))
{
gchar *text = g_strdup_printf(
_("An error occurred while converting the file from UTF-8 in \"%s\". The file remains unsaved."),
@@ -1648,15 +1651,15 @@
gint bytes_written;
gint err = 0;
- g_return_val_if_fail(data != NULL, EINVAL);
+ g_return_val_if_fail(G_LIKELY(data != NULL), EINVAL);
fp = g_fopen(locale_filename, "wb");
- if (fp == NULL)
+ if (G_UNLIKELY(fp == NULL))
return errno;
bytes_written = fwrite(data, sizeof(gchar), len, fp);
- if (len != bytes_written)
+ if (G_UNLIKELY(len != bytes_written))
err = errno;
fclose(fp);
@@ -1692,14 +1695,14 @@
gint err;
gchar *locale_filename;
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return FALSE;
/* the "changed" flag should exclude the "readonly" flag, but check it anyway for safety */
if (! force && ! ui_prefs.allow_always_save && (! doc->changed || doc->readonly))
return FALSE;
- if (doc->file_name == NULL)
+ if (G_UNLIKELY(doc->file_name == NULL))
{
ui_set_statusbar(TRUE, _("Error saving file."));
utils_beep();
@@ -1758,7 +1761,7 @@
err = write_data_to_disk(doc, locale_filename, data, len);
g_free(data);
- if (err != 0)
+ if (G_UNLIKELY(err != 0))
{
ui_set_statusbar(TRUE, _("Error saving file (%s)."), g_strerror(err));
dialogs_show_msgbox_with_secondary(GTK_MESSAGE_ERROR,
@@ -1773,7 +1776,7 @@
store_saved_encoding(doc);
/* ignore the following things if we are quitting */
- if (! main_status.quitting)
+ if (G_LIKELY(! main_status.quitting))
{
sci_set_savepoint(doc->editor->sci);
@@ -1807,10 +1810,10 @@
gint start_pos, search_pos;
struct TextToFind ttf;
- g_return_val_if_fail(text != NULL, FALSE);
- if (doc == NULL)
+ g_return_val_if_fail(G_LIKELY(text != NULL), FALSE);
+ if (G_UNLIKELY(doc == NULL))
return FALSE;
- if (! *text)
+ if (G_UNLIKELY(! *text))
return TRUE;
start_pos = (inc) ? sci_get_selection_start(doc->editor->sci) :
@@ -1869,8 +1872,10 @@
{
gint selection_end, selection_start, search_pos;
- g_return_val_if_fail(doc != NULL && text != NULL, -1);
- if (! *text) return -1;
+ g_return_val_if_fail(G_LIKELY(doc != NULL) && G_LIKELY(text != NULL), -1);
+ if (G_UNLIKELY(! *text))
+ return -1;
+
/* Sci doesn't support searching backwards with a regex */
if (flags & SCFIND_REGEXP)
search_backwards = FALSE;
@@ -1939,9 +1944,12 @@
{
gint selection_end, selection_start, search_pos;
- g_return_val_if_fail(doc != NULL && find_text != NULL && replace_text != NULL, -1);
- if (! *find_text) return -1;
+ g_return_val_if_fail(G_LIKELY(doc != NULL) && G_LIKELY(find_text != NULL) &&
+ G_LIKELY(replace_text != NULL), -1);
+ if (G_UNLIKELY(! *find_text))
+ return -1;
+
/* Sci doesn't support searching backwards with a regex */
if (flags & SCFIND_REGEXP)
search_backwards = FALSE;
@@ -2036,9 +2044,13 @@
if (new_range_end != NULL)
*new_range_end = -1;
- g_return_val_if_fail(doc != NULL && find_text != NULL && replace_text != NULL, 0);
- if (! *find_text || doc->readonly) return 0;
+ g_return_val_if_fail(G_LIKELY(doc != NULL) && G_LIKELY(find_text != NULL) &&
+ G_LIKELY(replace_text != NULL), 0);
+
+ if (G_UNLIKELY(! *find_text) || doc->readonly)
+ return 0;
+
sci = doc->editor->sci;
sci_start_undo_action(sci);
@@ -2110,9 +2122,12 @@
gint max_column = 0, count = 0;
gboolean replaced = FALSE;
- g_return_if_fail(doc != NULL && find_text != NULL && replace_text != NULL);
- if (! *find_text) return;
+ g_return_if_fail(G_LIKELY(doc != NULL) && G_LIKELY(find_text != NULL) &&
+ G_LIKELY(replace_text != NULL));
+ if (G_UNLIKELY(! *find_text))
+ return;
+
selection_start = sci_get_selection_start(doc->editor->sci);
selection_end = sci_get_selection_end(doc->editor->sci);
/* do we have a selection? */
@@ -2208,9 +2223,12 @@
gint flags, gboolean escaped_chars)
{
gint len, count;
- g_return_val_if_fail(doc != NULL && find_text != NULL && replace_text != NULL, FALSE);
- if (! *find_text) return FALSE;
+ g_return_val_if_fail(G_LIKELY(doc != NULL) && G_LIKELY(find_text != NULL) &&
+ G_LIKELY(replace_text != NULL), FALSE);
+ if (G_UNLIKELY(! *find_text))
+ return FALSE;
+
len = sci_get_length(doc->editor->sci);
count = document_replace_range(
doc, find_text, replace_text, flags, 0, len, TRUE, NULL);
@@ -2248,16 +2266,16 @@
gboolean success = FALSE;
/* if the filetype doesn't have a tag parser or it is a new file */
- if (doc == NULL || doc->file_type == NULL ||
- app->tm_workspace == NULL ||
- ! filetype_has_tags(doc->file_type) || ! doc->file_name)
+ if (G_UNLIKELY(doc == NULL) || G_UNLIKELY(doc->file_type == NULL) ||
+ G_UNLIKELY(app->tm_workspace == NULL) ||
+ ! filetype_has_tags(doc->file_type) || G_UNLIKELY(! doc->file_name))
{
/* set the default (empty) tag list */
treeviews_update_tag_list(doc, FALSE);
return;
}
- if (doc->tm_file == NULL)
+ if (G_UNLIKELY(doc->tm_file == NULL))
{
gchar *locale_filename = utils_get_locale_from_utf8(doc->file_name);
@@ -2282,7 +2300,7 @@
else
{
success = update_tags_from_buffer(doc);
- if (! success)
+ if (G_UNLIKELY(! success))
geany_debug("tag list updating failed");
}
treeviews_update_tag_list(doc, success);
@@ -2297,7 +2315,7 @@
static GString *last_typenames = NULL;
GString *s = NULL;
- if (app->tm_workspace)
+ if (G_LIKELY(app->tm_workspace))
{
GPtrArray *tags_array = app->tm_workspace->work_object.tags_array;
@@ -2319,7 +2337,8 @@
last_typenames = s;
*types = s;
- if (s == NULL) return FALSE;
+ if (s == NULL)
+ return FALSE;
return TRUE;
}
@@ -2336,7 +2355,7 @@
const GString *s;
ScintillaObject *sci;
- g_return_val_if_fail(doc != NULL, FALSE);
+ g_return_val_if_fail(G_LIKELY(doc != NULL), FALSE);
sci = doc->editor->sci;
switch (FILETYPE_ID(doc->file_type))
@@ -2353,7 +2372,7 @@
}
sci = doc->editor->sci;
- if (sci != NULL && editor_lexer_get_type_keyword_idx(sci_get_lexer(sci)) == -1)
+ if (G_UNLIKELY(sci != NULL) && editor_lexer_get_type_keyword_idx(sci_get_lexer(sci)) == -1)
return FALSE;
if (! get_project_typenames(&s, lang))
@@ -2367,7 +2386,7 @@
}
return FALSE;
}
- g_return_val_if_fail(s != NULL, FALSE);
+ g_return_val_if_fail(G_LIKELY(s != NULL), FALSE);
for (n = 0; n < documents_array->len; n++)
{
@@ -2395,7 +2414,7 @@
{
gboolean ft_changed;
- if (type == NULL || doc == NULL)
+ if (G_UNLIKELY(type == NULL) || G_UNLIKELY(doc == NULL))
return;
geany_debug("%s : %s (%s)",
@@ -2437,8 +2456,9 @@
**/
void document_set_encoding(GeanyDocument *doc, const gchar *new_encoding)
{
- if (doc == NULL || new_encoding == NULL ||
- utils_str_equal(new_encoding, doc->encoding)) return;
+ if (G_UNLIKELY(doc == NULL) || G_UNLIKELY(new_encoding == NULL) ||
+ utils_str_equal(new_encoding, doc->encoding))
+ return;
g_free(doc->encoding);
doc->encoding = g_strdup(new_encoding);
@@ -2461,14 +2481,13 @@
while (g_trash_stack_height(&doc->priv->undo_actions) > 0)
{
a = g_trash_stack_pop(&doc->priv->undo_actions);
- if (a != NULL)
+ if (G_LIKELY(a != NULL))
{
switch (a->type)
{
case UNDO_ENCODING: g_free(a->data); break;
default: break;
}
-
g_free(a);
}
}
@@ -2477,14 +2496,13 @@
while (g_trash_stack_height(&doc->priv->redo_actions) > 0)
{
a = g_trash_stack_pop(&doc->priv->redo_actions);
- if (a != NULL)
+ if (G_LIKELY(a != NULL))
{
switch (a->type)
{
case UNDO_ENCODING: g_free(a->data); break;
default: break;
}
-
g_free(a);
}
}
@@ -2492,9 +2510,6 @@
if (! main_status.quitting && doc->editor != NULL)
document_set_text_changed(doc, FALSE);
-
- /*geany_debug("%s: new undo stack height: %d, new redo stack height: %d", G_STRFUNC,
- *g_trash_stack_height(&doc->undo_actions), g_trash_stack_height(&doc->redo_actions)); */
}
@@ -2502,7 +2517,7 @@
{
undo_action *action;
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return;
action = g_new0(undo_action, 1);
@@ -2513,15 +2528,12 @@
document_set_text_changed(doc, TRUE);
ui_update_popup_reundo_items(doc);
-
- /*geany_debug("%s: new stack height: %d, added type: %d", G_STRFUNC,
- *g_trash_stack_height(&doc->undo_actions), action->type); */
}
gboolean document_can_undo(GeanyDocument *doc)
{
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return FALSE;
if (g_trash_stack_height(&doc->priv->undo_actions) > 0 || sci_can_undo(doc->editor->sci))
@@ -2545,12 +2557,12 @@
{
undo_action *action;
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return;
action = g_trash_stack_pop(&doc->priv->undo_actions);
- if (action == NULL)
+ if (G_UNLIKELY(action == NULL))
{
/* fallback, should not be necessary */
geany_debug("%s: fallback used", G_STRFUNC);
@@ -2597,13 +2609,12 @@
update_changed_state(doc);
ui_update_popup_reundo_items(doc);
- /*geany_debug("%s: new stack height: %d", G_STRFUNC, g_trash_stack_height(&doc->undo_actions));*/
}
gboolean document_can_redo(GeanyDocument *doc)
{
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return FALSE;
if (g_trash_stack_height(&doc->priv->redo_actions) > 0 || sci_can_redo(doc->editor->sci))
@@ -2617,12 +2628,12 @@
{
undo_action *action;
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return;
action = g_trash_stack_pop(&doc->priv->redo_actions);
- if (action == NULL)
+ if (G_UNLIKELY(action == NULL))
{
/* fallback, should not be necessary */
geany_debug("%s: fallback used", G_STRFUNC);
@@ -2668,7 +2679,6 @@
update_changed_state(doc);
ui_update_popup_reundo_items(doc);
- /*geany_debug("%s: new stack height: %d", G_STRFUNC, g_trash_stack_height(&doc->redo_actions));*/
}
@@ -2676,7 +2686,7 @@
{
undo_action *action;
- if (doc == NULL)
+ if G_UNLIKELY((doc == NULL))
return;
action = g_new0(undo_action, 1);
@@ -2709,7 +2719,7 @@
/*static GdkColor orange = {0, 0xFFFF, 0x7FFF, 0};*/
GdkColor *color = NULL;
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return NULL;
if (doc->changed)
@@ -2737,7 +2747,8 @@
*/
GeanyDocument *document_index(gint idx)
{
- return (idx >= 0 && idx < (gint) documents_array->len) ? documents[idx] : NULL;
+ return (G_LIKELY(idx >= 0) && G_LIKELY(idx < (gint) documents_array->len)) ?
+ documents[idx] : NULL;
}
@@ -2748,6 +2759,8 @@
gchar *text;
GeanyDocument *doc;
+ g_return_val_if_fail(G_LIKELY(old_doc != NULL), NULL);
+
len = sci_get_length(old_doc->editor->sci) + 1;
text = (gchar*) g_malloc(len);
sci_get_text(old_doc->editor->sci, len, text);
@@ -2774,12 +2787,12 @@
gboolean document_account_for_unsaved(void)
{
guint i, p, page_count, len = documents_array->len;
+ GeanyDocument *doc;
page_count = gtk_notebook_get_n_pages(GTK_NOTEBOOK(main_widgets.notebook));
for (p = 0; p < page_count; p++)
{
- GeanyDocument *doc = document_get_from_page(p);
-
+ doc = document_get_from_page(p);
if (doc->changed)
{
if (! dialogs_show_unsaved_file(doc))
@@ -2789,9 +2802,10 @@
/* all documents should now be accounted for, so ignore any changes */
for (i = 0; i < len; i++)
{
- if (documents[i]->is_valid && documents[i]->changed)
+ doc = documents[i];
+ if (doc->is_valid && doc->changed)
{
- documents[i]->changed = FALSE;
+ doc->changed = FALSE;
}
}
return TRUE;
@@ -2889,7 +2903,7 @@
doc->priv->file_disk_status = FILE_MISSING;
return 0;
}
- else if (doc->priv->mtime > t || st.st_mtime > t)
+ else if (G_UNLIKELY(doc->priv->mtime > t) || G_UNLIKELY(st.st_mtime > t))
{
g_warning("%s: Something is wrong with the time stamps.", G_STRFUNC);
}
@@ -2912,7 +2926,7 @@
gboolean ret = FALSE;
time_t t;
- if (file_prefs.disk_check_timeout == 0 || doc == NULL)
+ if (file_prefs.disk_check_timeout == 0 || G_UNLIKELY(doc == NULL))
return FALSE;
/* ignore documents that have never been saved to disk and remote files */
Modified: trunk/src/document.h
===================================================================
--- trunk/src/document.h 2009-04-05 19:58:30 UTC (rev 3686)
+++ trunk/src/document.h 2009-04-05 21:07:40 UTC (rev 3687)
@@ -118,7 +118,7 @@
* @note This should not be used to check the result of the main API functions,
* these only need a NULL-pointer check - @c document_get_current() != @c NULL. */
#define DOC_VALID(doc_ptr) \
- ((doc_ptr) != NULL && (doc_ptr)->is_valid)
+ (G_LIKELY((doc_ptr) != NULL) && G_LIKELY((doc_ptr)->is_valid))
/**
* DOC_FILENAME returns the filename of the document passed or
@@ -126,7 +126,7 @@
* This macro never returns NULL.
**/
#define DOC_FILENAME(doc) \
- ((doc->file_name != NULL) ? (doc->file_name) : GEANY_STRING_UNTITLED)
+ (G_LIKELY(doc->file_name != NULL) ? (doc->file_name) : GEANY_STRING_UNTITLED)
Modified: trunk/src/editor.c
===================================================================
--- trunk/src/editor.c 2009-04-05 19:58:30 UTC (rev 3686)
+++ trunk/src/editor.c 2009-04-05 21:07:40 UTC (rev 3687)
@@ -495,7 +495,7 @@
(*line)++;
while (*line <= lineMaxSubord)
{
- if (force)
+ if (G_UNLIKELY(force))
{
if (visLevels > 0)
SSM(sci, SCI_SHOWLINES, *line, *line);
@@ -511,7 +511,7 @@
levelLine = SSM(sci, SCI_GETFOLDLEVEL, *line, 0);
if (levelLine & SC_FOLDLEVELHEADERFLAG)
{
- if (force)
+ if (G_UNLIKELY(force))
{
if (visLevels > 1)
SSM(sci, SCI_SETFOLDEXPANDED, *line, 1);
@@ -597,7 +597,7 @@
{
SCNotification *nt = data;
- g_return_val_if_fail(calltip.sci != NULL, FALSE);
+ g_return_val_if_fail(G_LIKELY(calltip.sci != NULL), FALSE);
SSM(calltip.sci, SCI_CALLTIPCANCEL, 0, 0);
/* we use the position where the calltip was previously started as SCI_GETCURRENTPOS
@@ -643,7 +643,7 @@
GeanyEditor *editor = data;
gboolean retval;
- g_return_if_fail(editor != NULL);
+ g_return_if_fail(G_LIKELY(editor != NULL));
g_signal_emit_by_name(geany_object, "editor-notify", editor, scnt, &retval);
}
@@ -796,7 +796,7 @@
static gchar *
get_whitespace(const GeanyIndentPrefs *iprefs, gint width)
{
- g_return_val_if_fail(width >= 0, NULL);
+ g_return_val_if_fail(G_LIKELY(width >= 0), NULL);
if (width == 0)
return g_strdup("");
@@ -846,7 +846,7 @@
iprefs = *get_default_indent_prefs();
- if (!editor)
+ if (G_UNLIKELY(editor == NULL))
return &iprefs;
iprefs.type = editor->indent_type;
@@ -997,7 +997,7 @@
gint size;
const GeanyIndentPrefs *iprefs = editor_get_indent_prefs(editor);
- g_return_val_if_fail(line >= 0, 0);
+ g_return_val_if_fail(G_LIKELY(line >= 0), 0);
size = sci_get_line_indentation(sci, line);
@@ -1019,7 +1019,7 @@
gint size = get_indent_size_after_line(editor, line);
const GeanyIndentPrefs *iprefs = editor_get_indent_prefs(editor);
- if (size > 0)
+ if (G_LIKELY(size > 0))
{
gchar *text;
@@ -1122,8 +1122,7 @@
if (iprefs->auto_indent_mode < GEANY_AUTOINDENT_CURRENTCHARS)
return;
- if (editor == NULL || editor->document->file_type == NULL)
- return;
+ g_return_if_fail(G_LIKELY(editor != NULL) && G_LIKELY(editor->document->file_type != NULL));
sci = editor->sci;
doc = editor->document;
@@ -1142,7 +1141,8 @@
line_buf[line_len - eol_char_len] = '\0';
while (x < (line_len - eol_char_len))
{
- if (isspace(line_buf[x])) cnt++;
+ if (isspace(line_buf[x]))
+ cnt++;
x++;
}
g_free(line_buf);
@@ -1195,7 +1195,7 @@
gchar *chunk;
ScintillaObject *sci;
- if (editor == NULL)
+ if (G_UNLIKELY(editor == NULL))
return;
sci = editor->sci;
@@ -1269,7 +1269,7 @@
{
static gchar cword[GEANY_MAX_WORD_LENGTH];
- g_return_val_if_fail(editor != NULL, FALSE);
+ g_return_val_if_fail(G_LIKELY(editor != NULL), FALSE);
read_current_word(editor, pos, cword, sizeof(cword), wordchars, FALSE);
@@ -1327,7 +1327,8 @@
static gboolean append_calltip(GString *str, const TMTag *tag, filetype_id ft_id)
{
- if (! tag->atts.entry.arglist) return FALSE;
+ if (! tag->atts.entry.arglist)
+ return FALSE;
if (tag->atts.entry.var_type)
{
@@ -1365,7 +1366,7 @@
GString *str = NULL;
guint i;
- g_return_val_if_fail(ft && word && *word, NULL);
+ g_return_val_if_fail(G_LIKELY(ft) && G_LIKELY(word) && G_LIKELY(*word), NULL);
tags = tm_workspace_find(word, arg_types | tm_tag_class_t, attrs, FALSE, ft->lang);
if (tags->len == 0)
@@ -1450,7 +1451,7 @@
gchar *str;
ScintillaObject *sci;
- if (editor == NULL || editor->document->file_type == NULL)
+ if (G_UNLIKELY(editor == NULL) || G_UNLIKELY(editor->document->file_type == NULL))
return FALSE;
sci = editor->sci;
@@ -1464,7 +1465,8 @@
orig_pos = pos;
pos = (lexer == SCLEX_LATEX) ? find_previous_brace(sci, pos) :
find_start_bracket(sci, pos);
- if (pos == -1) return FALSE;
+ if (G_UNLIKELY(pos == -1))
+ return FALSE;
}
/* the style 1 before the brace (which may be highlighted) */
@@ -1474,7 +1476,8 @@
word[0] = '\0';
editor_find_current_word(editor, pos - 1, word, sizeof word, NULL);
- if (word[0] == '\0') return FALSE;
+ if (word[0] == '\0')
+ return FALSE;
str = find_calltip(word, editor->document->file_type);
if (str)
@@ -1496,7 +1499,7 @@
{
GString *str;
- g_return_val_if_fail(editor != NULL, NULL);
+ g_return_val_if_fail(G_LIKELY(editor != NULL), NULL);
str = g_string_new(NULL);
if (append_calltip(str, tag, FILETYPE_ID(editor->document->file_type)))
@@ -1521,21 +1524,26 @@
GString *words;
const gchar **entities = symbols_get_html_entities();
- if (*root != '&' || entities == NULL) return FALSE;
+ if (*root != '&' || G_UNLIKELY(entities == NULL))
+ return FALSE;
words = g_string_sized_new(500);
for (i = 0; ; i++)
{
- if (entities[i] == NULL) break;
- else if (entities[i][0] == '#') continue;
+ if (G_UNLIKELY(entities[i] == NULL))
+ break;
+ else if (G_UNLIKELY(entities[i][0] == '#'))
+ continue;
if (! strncmp(entities[i], root, rootlen))
{
- if (j++ > 0) g_string_append_c(words, '\n');
+ if (j++ > 0)
+ g_string_append_c(words, '\n');
g_string_append(words, entities[i]);
}
}
- if (words->len > 0) show_autocomplete(sci, rootlen, words->str);
+ if (words->len > 0)
+ show_autocomplete(sci, rootlen, words->str);
g_string_free(words, TRUE);
return TRUE;
}
@@ -1550,8 +1558,9 @@
ScintillaObject *sci;
GeanyDocument *doc;
- if (editor == NULL || editor->document->file_type == NULL)
- return FALSE;
+ g_return_val_if_fail(G_LIKELY(editor != NULL) &&
+ G_LIKELY(editor->document->file_type != NULL), FALSE);
+
sci = editor->sci;
doc = editor->document;
@@ -1563,7 +1572,7 @@
for (j = 0; j < tags->len; ++j)
{
- if (j > 0)
+ if (G_LIKELY(j > 0))
g_string_append_c(words, '\n');
if (j == editor_prefs.autocompletion_max_entries)
@@ -1610,13 +1619,15 @@
gchar *wordchars;
GeanyFiletype *ft;
- if ((! editor_prefs.auto_complete_symbols && ! force) ||
- editor == NULL || editor->document->file_type == NULL)
+ if (! editor_prefs.auto_complete_symbols && ! force)
return FALSE;
+ g_return_val_if_fail(G_LIKELY(editor != NULL) &&
+ G_LIKELY(editor->document->file_type != NULL), FALSE);
+
/* If we are at the beginning of the document, we skip autocompletion as we can't determine the
* necessary styling information */
- if (pos < 2)
+ if (G_UNLIKELY(pos < 2))
return FALSE;
sci = editor->sci;
@@ -1670,8 +1681,8 @@
{
ScintillaObject *sci;
- if (editor == NULL || editor->document->file_type == NULL)
- return;
+ g_return_if_fail(G_LIKELY(editor != NULL) && G_LIKELY(editor->document->file_type != NULL));
+
sci = editor->sci;
if (sci_get_char_at(sci, pos - 2) == '}')
@@ -1783,7 +1794,7 @@
{
gchar *needle;
- if (key == NULL || value == NULL)
+ if (G_UNLIKELY(key == NULL) || G_UNLIKELY(value == NULL))
return;
needle = g_strconcat("%", (gchar*) key, "%", NULL);
@@ -1854,7 +1865,7 @@
GString *buf;
const gchar cur_marker[] = "__GEANY_CURSOR_MARKER__";
- g_return_if_fail(text);
+ g_return_if_fail(G_LIKELY(text));
buf = g_string_new(text);
@@ -1908,7 +1919,7 @@
* Can, and should, be optimized to give better results */
void snippet_goto_next_cursor(ScintillaObject *sci, gint current_pos)
{
- if (snippet_queue)
+ if (G_LIKELY(snippet_queue))
{
gpointer offset;
@@ -1963,7 +1974,7 @@
/* replace 'special' completions */
specials = g_hash_table_lookup(editor_prefs.snippets, "Special");
- if (specials != NULL)
+ if (G_LIKELY(specials != NULL))
{
/* ugly hack using global_pattern */
snippets_global_pattern = pattern;
@@ -2075,7 +2086,7 @@
const gchar *word;
ScintillaObject *sci;
- if (editor == NULL)
+ if (G_UNLIKELY(editor == NULL))
return FALSE;
sci = editor->sci;
@@ -2111,10 +2122,12 @@
{
GString *words;
- if (editor == NULL) return;
+ if (G_UNLIKELY(editor == NULL))
+ return;
words = symbols_get_macro_list();
- if (words == NULL) return;
+ if (G_UNLIKELY(words == NULL))
+ return;
SSM(editor->sci, SCI_USERLISTSHOW, 1, (sptr_t) words->str);
g_string_free(words, TRUE);
@@ -2294,8 +2307,7 @@
gchar *str_begin, *str_end, *co, *cc;
gint line_len;
- if (editor == NULL || editor->document->file_type == NULL)
- return;
+ g_return_if_fail(G_LIKELY(editor != NULL) && G_LIKELY(editor->document->file_type != NULL));
eol = editor_get_eol_char(editor);
co = editor->document->file_type->comment_open;
@@ -2320,8 +2332,7 @@
gchar *linebuf;
GeanyDocument *doc;
- if (editor == NULL || editor->document->file_type == NULL)
- return;
+ g_return_if_fail(G_LIKELY(editor != NULL) && G_LIKELY(editor->document->file_type != NULL));
doc = editor->document;
/* remove comment open chars */
@@ -2366,8 +2377,8 @@
gboolean break_loop = FALSE, single_line = FALSE;
GeanyFiletype *ft;
- if (editor == NULL || editor->document->file_type == NULL)
- return 0;
+ g_return_val_if_fail(G_LIKELY(editor != NULL) &&
+ G_LIKELY(editor->document->file_type != NULL), 0);
if (line < 0)
{ /* use selection or current line */
@@ -2398,11 +2409,11 @@
co = ft->comment_open;
cc = ft->comment_close;
- if (co == NULL)
+ if (G_UNLIKELY(co == NULL))
return 0;
co_len = strlen(co);
- if (co_len == 0)
+ if (G_UNLIKELY(co_len == 0))
return 0;
SSM(editor->sci, SCI_BEGINUNDOACTION, 0, 0);
@@ -2521,8 +2532,7 @@
gsize tm_len = strlen(editor_prefs.comment_toggle_mark);
GeanyFiletype *ft;
- if (editor == NULL || editor->document->file_type == NULL)
- return;
+ g_return_if_fail(G_LIKELY(editor != NULL) && G_LIKELY(editor->document->file_type != NULL));
sel_start = sci_get_selection_start(editor->sci);
sel_end = sci_get_selection_end(editor->sci);
@@ -2546,11 +2556,11 @@
co = ft->comment_open;
cc = ft->comment_close;
- if (co == NULL)
+ if (G_UNLIKELY(co == NULL))
return;
co_len = strlen(co);
- if (co_len == 0)
+ if (G_UNLIKELY(co_len == 0))
return;
SSM(editor->sci, SCI_BEGINUNDOACTION, 0, 0);
@@ -2690,8 +2700,7 @@
gboolean break_loop = FALSE, single_line = FALSE;
GeanyFiletype *ft;
- if (editor == NULL || editor->document->file_type == NULL)
- return;
+ g_return_if_fail(G_LIKELY(editor != NULL) && G_LIKELY(editor->document->file_type != NULL));
if (line < 0)
{ /* use selection or current line */
@@ -2722,11 +2731,11 @@
co = ft->comment_open;
cc = ft->comment_close;
- if (co == NULL)
+ if (G_UNLIKELY(co == NULL))
return;
co_len = strlen(co);
- if (co_len == 0)
+ if (G_UNLIKELY(co_len == 0))
return;
SSM(editor->sci, SCI_BEGINUNDOACTION, 0, 0);
@@ -2939,7 +2948,7 @@
whitespace = " ";
}
- if (style == SCE_D_COMMENTNESTED)
+ if (G_UNLIKELY(style == SCE_D_COMMENTNESTED))
continuation = "+"; /* for nested comments in D */
result = g_strconcat(whitespace, continuation, " ", NULL);
@@ -3251,11 +3260,10 @@
gboolean have_multiline_comment = FALSE;
GeanyDocument *doc;
- if (editor == NULL || editor->document->file_type == NULL ||
- editor->document->file_type->comment_open == NULL)
- {
- return;
- }
+ g_return_if_fail(G_LIKELY(editor != NULL) &&
+ G_LIKELY(editor->document->file_type != NULL) &&
+ G_LIKELY(editor->document->file_type->comment_open != NULL));
+
doc = editor->document;
if (doc->file_type->comment_close != NULL && strlen(doc->file_type->comment_close) > 0)
@@ -3312,7 +3320,7 @@
gint vis1, los, delta;
GtkWidget *wid;
- if (editor == NULL)
+ if (G_UNLIKELY(editor == NULL))
return;
wid = GTK_WIDGET(editor->sci);
@@ -3341,6 +3349,9 @@
gchar *text;
GeanyIndentPrefs iprefs = *editor_get_indent_prefs(editor);
+ if (G_UNLIKELY(editor == NULL))
+ return;
+
switch (iprefs.type)
{
case GEANY_INDENT_TYPE_TABS:
@@ -3363,7 +3374,7 @@
gint start;
gint end;
- g_return_if_fail(editor != NULL);
+ g_return_if_fail(G_LIKELY(editor != NULL));
pos = SSM(editor->sci, SCI_GETCURRENTPOS, 0, 0);
start = SSM(editor->sci, SCI_WORDSTARTPOSITION, pos, TRUE);
@@ -3389,7 +3400,7 @@
{
gint start, end, line;
- g_return_if_fail(editor != NULL);
+ g_return_if_fail(G_LIKELY(editor != NULL));
start = sci_get_selection_start(editor->sci);
end = sci_get_selection_end(editor->sci);
@@ -3463,7 +3474,7 @@
{
gint pos_start, pos_end, line_start, line_found;
- g_return_if_fail(editor != NULL);
+ g_return_if_fail(G_LIKELY(editor != NULL));
line_start = SSM(editor->sci, SCI_LINEFROMPOSITION,
SSM(editor->sci, SCI_GETCURRENTPOS, 0, 0), 0);
@@ -3522,7 +3533,7 @@
gint first_sel_start, first_sel_end;
ScintillaObject *sci;
- g_return_if_fail(editor != NULL);
+ g_return_if_fail(G_LIKELY(editor != NULL));
sci = editor->sci;
@@ -3566,7 +3577,7 @@
gint i, first_line, last_line, line_start, indentation_end, count = 0;
gint sel_start, sel_end, first_line_offset = 0;
- g_return_if_fail(editor != NULL);
+ g_return_if_fail(G_LIKELY(editor != NULL));
sel_start = sci_get_selection_start(editor->sci);
sel_end = sci_get_selection_end(editor->sci);
@@ -3640,7 +3651,7 @@
{
gchar *s = NULL;
- if (editor == NULL)
+ if (G_UNLIKELY(editor == NULL))
return NULL;
if (sci_get_lines_selected(editor->sci) == 1)
@@ -3669,7 +3680,7 @@
{
gint vis1, los;
- if (editor == NULL)
+ if (G_UNLIKELY(editor == NULL))
return FALSE;
/* If line is wrapped the result may occur on another virtual line than the first and may be
@@ -3691,7 +3702,7 @@
{
gint line;
- if (editor == NULL)
+ if (G_UNLIKELY(editor == NULL))
return;
line = sci_get_current_line(editor->sci);
@@ -3730,10 +3741,10 @@
{
glong last_pos;
- g_return_if_fail(editor != NULL);
+ g_return_if_fail(G_LIKELY(editor != NULL));
last_pos = sci_get_length(editor->sci);
- if (last_pos > 0)
+ if (G_LIKELY(last_pos > 0))
{
sci_indicator_set(editor->sci, indic);
sci_indicator_clear(editor->sci, 0, last_pos);
@@ -3757,7 +3768,7 @@
guint i = 0, len;
gchar *linebuf;
- if (editor == NULL)
+ if (G_UNLIKELY(editor == NULL))
return;
start = sci_get_position_from_line(editor->sci, line);
@@ -3798,7 +3809,7 @@
*/
void editor_indicator_set_on_range(GeanyEditor *editor, gint indic, gint start, gint end)
{
- if (editor == NULL || start >= end)
+ if (G_UNLIKELY(editor == NULL) || G_UNLIKELY(start >= end))
return;
sci_indicator_set(editor->sci, indic);
@@ -3810,7 +3821,7 @@
* the replacement will also start with 0x... */
void editor_insert_color(GeanyEditor *editor, const gchar *colour)
{
- g_return_if_fail(editor != NULL);
+ g_return_if_fail(G_LIKELY(editor != NULL));
if (sci_has_selection(editor->sci))
{
@@ -3839,7 +3850,7 @@
{
gint mode = file_prefs.default_eol_character;
- if (editor != NULL)
+ if (G_LIKELY(editor != NULL))
mode = sci_get_eol_mode(editor->sci);
switch (mode)
@@ -3856,7 +3867,7 @@
{
gint mode = file_prefs.default_eol_character;
- if (editor != NULL)
+ if (G_LIKELY(editor != NULL))
mode = sci_get_eol_mode(editor->sci);
switch (mode)
@@ -3872,7 +3883,7 @@
{
gint mode = file_prefs.default_eol_character;
- if (editor != NULL)
+ if (G_LIKELY(editor != NULL))
mode = sci_get_eol_mode(editor->sci);
switch (mode)
@@ -3888,7 +3899,7 @@
{
gint lines, first, i;
- if (editor == NULL || ! editor_prefs.folding)
+ if (G_UNLIKELY(editor == NULL) || ! editor_prefs.folding)
return;
lines = sci_get_line_count(editor->sci);
@@ -3926,7 +3937,7 @@
gchar *tab_str;
struct TextToFind ttf;
- if (editor == NULL)
+ if (G_UNLIKELY(editor == NULL))
return;
sci_start_undo_action(editor->sci);
@@ -3965,10 +3976,10 @@
gint tab_len;
struct TextToFind ttf;
- if (editor == NULL)
+ if (G_UNLIKELY(editor == NULL))
return;
- if (tab_len_f < 0.0)
+ if (G_UNLIKELY(tab_len_f < 0.0))
tab_len_f = sci_get_tab_width(editor->sci);
if (! dialogs_show_input_numeric(
@@ -4045,11 +4056,11 @@
gboolean append_newline = (max_lines == 1);
gint end_document = sci_get_position_from_line(editor->sci, max_lines);
- if (max_lines > 1)
+ if (G_LIKELY(max_lines > 1))
{
append_newline = end_document > sci_get_position_from_line(editor->sci, max_lines - 1);
}
- if (append_newline)
+ if (G_LIKELY(append_newline))
{
const gchar *eol = "\n";
switch (sci_get_eol_mode(editor->sci))
@@ -4072,7 +4083,7 @@
gchar *font_name;
PangoFontDescription *pfd;
- g_return_if_fail(editor);
+ g_return_if_fail(G_LIKELY(editor));
pfd = pango_font_description_from_string(font);
size = pango_font_description_get_size(pfd) / PANGO_SCALE;
@@ -4095,7 +4106,7 @@
void editor_set_line_wrapping(GeanyEditor *editor, gboolean wrap)
{
- g_return_if_fail(editor != NULL);
+ g_return_if_fail(G_LIKELY(editor != NULL));
editor->line_wrapping = wrap;
sci_set_lines_wrapped(editor->sci, wrap);
@@ -4133,8 +4144,8 @@
{
gint pos;
- g_return_val_if_fail(editor, FALSE);
- if (line < 0 || line >= sci_get_line_count(editor->sci))
+ g_return_val_if_fail(G_LIKELY(editor), FALSE);
+ if (G_UNLIKELY(line < 0) || G_UNLIKELY(line >= sci_get_line_count(editor->sci)))
return FALSE;
pos = sci_get_position_from_line(editor->sci, line);
@@ -4148,8 +4159,8 @@
{
gint page_num;
- g_return_val_if_fail(editor, FALSE);
- if (pos < 0)
+ g_return_val_if_fail(G_LIKELY(editor), FALSE);
+ if (G_UNLIKELY(pos < 0))
return FALSE;
if (mark)
@@ -4179,12 +4190,12 @@
/* Handle scroll events if Alt is pressed and scroll whole pages instead of a
* few lines only, maybe this could/should be done in Scintilla directly */
- if (event->state & GDK_MOD1_MASK)
+ if (G_UNLIKELY(event->state & GDK_MOD1_MASK))
{
sci_send_command(editor->sci, (event->direction == GDK_SCROLL_DOWN) ? SCI_PAGEDOWN : SCI_PAGEUP);
return TRUE;
}
- else if (event->state & GDK_SHIFT_MASK)
+ else if (G_UNLIKELY(event->state & GDK_SHIFT_MASK))
{
gint amount = (event->direction == GDK_SCROLL_DOWN) ? 8 : -8;
@@ -4430,7 +4441,7 @@
{
ScintillaObject *sci;
- g_return_if_fail(editor != NULL);
+ g_return_if_fail(G_UNLIKELY(editor != NULL));
sci = editor->sci;
Modified: trunk/src/encodings.c
===================================================================
--- trunk/src/encodings.c 2009-04-05 19:58:30 UTC (rev 3686)
+++ trunk/src/encodings.c 2009-04-05 21:07:40 UTC (rev 3687)
@@ -150,7 +150,8 @@
{
gint i;
- if (charset == NULL) return GEANY_ENCODING_UTF_8;
+ if (G_UNLIKELY(charset == NULL))
+ return GEANY_ENCODING_UTF_8;
i = 0;
while (i < GEANY_ENCODINGS_MAX)
@@ -168,7 +169,8 @@
{
gint i;
- if (charset == NULL) return &encodings[GEANY_ENCODING_UTF_8];
+ if (G_UNLIKELY(charset == NULL))
+ return &encodings[GEANY_ENCODING_UTF_8];
i = 0;
while (i < GEANY_ENCODINGS_MAX)
@@ -185,7 +187,7 @@
const GeanyEncoding *encodings_get_from_index(gint idx)
{
- g_return_val_if_fail(idx >= 0 && idx < GEANY_ENCODINGS_MAX, NULL);
+ g_return_val_if_fail(G_LIKELY(idx >= 0) && G_LIKELY(idx < GEANY_ENCODINGS_MAX), NULL);
return &encodings[idx];
}
@@ -204,7 +206,7 @@
**/
const gchar* encodings_get_charset_from_index(gint idx)
{
- g_return_val_if_fail(idx >= 0 && idx < GEANY_ENCODINGS_MAX, NULL);
+ g_return_val_if_fail(G_LIKELY(idx >= 0) && G_LIKELY(idx < GEANY_ENCODINGS_MAX), NULL);
return encodings[idx].charset;
}
@@ -212,9 +214,9 @@
gchar *encodings_to_string(const GeanyEncoding* enc)
{
- g_return_val_if_fail(enc != NULL, NULL);
- g_return_val_if_fail(enc->name != NULL, NULL);
- g_return_val_if_fail(enc->charset != NULL, NULL);
+ g_return_val_if_fail(G_LIKELY(enc != NULL), NULL);
+ g_return_val_if_fail(G_LIKELY(enc->name != NULL), NULL);
+ g_return_val_if_fail(G_LIKELY(enc->charset != NULL), NULL);
return g_strdup_printf("%s (%s)", enc->name, enc->charset);
}
@@ -222,8 +224,8 @@
const gchar *encodings_get_charset(const GeanyEncoding* enc)
{
- g_return_val_if_fail(enc != NULL, NULL);
- g_return_val_if_fail(enc->charset != NULL, NULL);
+ g_return_val_if_fail(G_LIKELY(enc != NULL), NULL);
+ g_return_val_if_fail(G_LIKELY(enc->charset != NULL), NULL);
return enc->charset;
}
@@ -235,7 +237,7 @@
{
gint i;
- g_return_if_fail(charset != NULL);
+ g_return_if_fail(G_LIKELY(charset != NULL));
i = 0;
while (i < GEANY_ENCODINGS_MAX)
@@ -244,7 +246,7 @@
break;
i++;
}
- if (i == GEANY_ENCODINGS_MAX)
+ if (G_UNLIKELY(i == GEANY_ENCODINGS_MAX))
i = GEANY_ENCODING_UTF_8; /* fallback to UTF-8 */
/* ignore_callback has to be set by the caller */
@@ -261,7 +263,7 @@
static void regex_compile(regex_t *preg, const gchar *pattern)
{
gint retval = regcomp(preg, pattern, REG_EXTENDED | REG_ICASE);
- if (retval != 0)
+ if (G_UNLIKELY(retval != 0))
{
gchar errmsg[512];
regerror(retval, preg, errmsg, 512);
@@ -279,7 +281,7 @@
gchar *encoding = NULL;
regmatch_t pmatch[10];
- if (! pregs_loaded || buffer == NULL)
+ if (G_UNLIKELY(! pregs_loaded) || G_UNLIKELY(buffer == NULL))
return NULL;
if (size > 512)
@@ -302,10 +304,11 @@
void encodings_finalize(void)
{
#ifdef HAVE_REGCOMP
- if (pregs_loaded)
+ if (G_LIKELY(pregs_loaded))
{
- guint i;
- for (i = 0; i < G_N_ELEMENTS(pregs); i++)
+ guint i, len;
+ len = G_N_ELEMENTS(pregs);
+ for (i = 0; i < len; i++)
{
regfree(&pregs[i]);
}
@@ -328,7 +331,7 @@
init_encodings();
#ifdef HAVE_REGCOMP
- if (! pregs_loaded)
+ if (G_UNLIKELY(! pregs_loaded))
{
regex_compile(&pregs[0], PATTERN_HTMLMETA);
regex_compile(&pregs[1], PATTERN_CODING);
@@ -445,8 +448,8 @@
gchar* converted_contents = NULL;
gsize bytes_written;
- g_return_val_if_fail(buffer != NULL, NULL);
- g_return_val_if_fail(charset != NULL, NULL);
+ g_return_val_if_fail(G_LIKELY(buffer != NULL), NULL);
+ g_return_val_if_fail(G_LIKELY(charset != NULL), NULL);
converted_contents = g_convert(buffer, size, "UTF-8", charset, NULL,
&bytes_written, &conv_error);
@@ -468,7 +471,8 @@
geany_debug("Couldn't convert from %s to UTF-8.", charset);
utf8_content = NULL;
- if (converted_contents != NULL) g_free(converted_contents);
+ if (converted_contents != NULL)
+ g_free(converted_contents);
}
else
{
@@ -499,7 +503,7 @@
gchar *utf8_content;
gboolean check_regex = FALSE;
gboolean check_locale = FALSE;
- gint i;
+ gint i, len;
if ((gint)size == -1)
{
@@ -508,7 +512,8 @@
#ifdef HAVE_REGCOMP
/* first try to read the encoding from the file content */
- for (i = 0; i < (gint) G_N_ELEMENTS(pregs) && ! check_regex; i++)
+ len = (gint) G_N_ELEMENTS(pregs);
+ for (i = 0; i < len && ! check_regex; i++)
{
if ((regex_charset = regex_match(&pregs[i], buffer, size)) != NULL)
check_regex = TRUE;
@@ -520,7 +525,7 @@
for (i = 0; i < GEANY_ENCODINGS_MAX; i++)
{
- if (i == encodings[GEANY_ENCODING_NONE].idx || i == -1)
+ if (G_UNLIKELY(i == encodings[GEANY_ENCODING_NONE].idx) || G_UNLIKELY(i == -1))
continue;
if (check_regex)
@@ -539,17 +544,17 @@
charset = encodings[i].charset;
- if (charset == NULL)
+ if (G_UNLIKELY(charset == NULL))
continue;
geany_debug("Trying to convert %" G_GSIZE_FORMAT " bytes of data from %s into UTF-8.", size, charset);
utf8_content = encodings_convert_to_utf8_from_charset(buffer, size, charset, FALSE);
- if (utf8_content != NULL)
+ if (G_LIKELY(utf8_content != NULL))
{
if (used_encoding != NULL)
{
- if (*used_encoding != NULL)
+ if (G_UNLIKELY(*used_encoding != NULL))
{
geany_debug("%s:%d", __FILE__, __LINE__);
g_free(*used_encoding);
@@ -625,7 +630,8 @@
gboolean encodings_is_unicode_charset(const gchar *string)
{
- if (string != NULL && (strncmp(string, "UTF", 3) == 0 || strncmp(string, "UCS", 3) == 0))
+ if (G_LIKELY(string != NULL) &&
+ (strncmp(string, "UTF", 3) == 0 || strncmp(string, "UCS", 3) == 0))
{
return TRUE;
}
Modified: trunk/src/filetypes.c
===================================================================
--- trunk/src/filetypes.c 2009-04-05 19:58:30 UTC (rev 3686)
+++ trunk/src/filetypes.c 2009-04-05 21:07:40 UTC (rev 3687)
@@ -598,9 +598,9 @@
{
const GeanyFiletype *ft1 = pft1, *ft2 = pft2;
- if (ft1->id == GEANY_FILETYPES_NONE)
+ if (G_UNLIKELY(ft1->id == GEANY_FILETYPES_NONE))
return -1;
- if (ft2->id == GEANY_FILETYPES_NONE)
+ if (G_UNLIKELY(ft2->id == GEANY_FILETYPES_NONE))
return 1;
return utils_str_casecmp(ft1->title, ft2->title);
@@ -611,8 +611,8 @@
* and set the filetype::id field. */
static void filetype_add(GeanyFiletype *ft)
{
- g_return_if_fail(ft);
- g_return_if_fail(ft->name);
+ g_return_if_fail(G_LIKELY(ft));
+ g_return_if_fail(G_LIKELY(ft->name));
ft->id = filetypes_array->len; /* len will be the index for filetype_array */
g_ptr_array_add(filetypes_array, ft);
@@ -627,8 +627,8 @@
{
filetype_id ft_id;
- g_return_if_fail(filetypes_array == NULL);
- g_return_if_fail(filetypes_hash == NULL);
+ g_return_if_fail(G_LIKELY(filetypes_array == NULL));
+ g_return_if_fail(G_LIKELY(filetypes_hash == NULL));
filetypes_array = g_ptr_array_sized_new(GEANY_MAX_BUILT_IN_FILETYPES);
filetypes_hash = g_hash_table_new(g_str_hash, g_str_equal);
@@ -736,7 +736,7 @@
gint j;
gboolean ret = FALSE;
- if (ft->id == GEANY_FILETYPES_NONE)
+ if (G_UNLIKELY(ft->id == GEANY_FILETYPES_NONE))
return FALSE;
for (j = 0; ft->pattern[j] != NULL; j++)
@@ -902,7 +902,7 @@
if (ft != NULL)
return ft;
- if (utf8_filename == NULL)
+ if (G_UNLIKELY(utf8_filename == NULL))
return filetypes[GEANY_FILETYPES_NONE];
return filetypes_detect_from_extension(utf8_filename);
@@ -915,7 +915,7 @@
GeanyFiletype *ft;
gchar *line;
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return filetypes[GEANY_FILETYPES_NONE];
line = sci_get_line(doc->editor->sci, 0);
@@ -943,7 +943,7 @@
f = g_fopen(locale_name, "r");
g_free(locale_name);
- if (f != NULL)
+ if (G_LIKELY(f != NULL))
{
if (fgets(line, sizeof(line), f) != NULL)
{
@@ -962,7 +962,7 @@
/* ignore_callback has to be set by the caller */
g_return_if_fail(ignore_callback);
- if (ft == NULL)
+ if (G_UNLIKELY(ft == NULL))
ft = filetypes[GEANY_FILETYPES_NONE];
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(ft->priv->menu_item), TRUE);
@@ -974,7 +974,7 @@
gpointer user_data)
{
GeanyDocument *doc = document_get_current();
- if (ignore_callback || doc == NULL)
+ if (G_UNLIKELY(ignore_callback) || G_UNLIKELY(doc == NULL))
return;
document_set_filetype(doc, (GeanyFiletype*)user_data);
@@ -999,7 +999,7 @@
/* Remove a filetype pointer from the list of available filetypes. */
static void filetype_remove(GeanyFiletype *ft)
{
- g_return_if_fail(ft);
+ g_return_if_fail(G_LIKELY(ft));
g_ptr_array_remove(filetypes_array, ft);
@@ -1027,7 +1027,7 @@
{
GeanyFiletype *ft = data;
- g_return_if_fail(ft != NULL);
+ g_return_if_fail(G_LIKELY(ft != NULL));
g_free(ft->name);
g_free(ft->title);
@@ -1049,10 +1049,10 @@
/* frees the array and all related pointers */
-void filetypes_free_types()
+void filetypes_free_types(void)
{
- g_return_if_fail(filetypes_array != NULL);
- g_return_if_fail(filetypes_hash != NULL);
+ g_return_if_fail(G_LIKELY(filetypes_array != NULL));
+ g_return_if_fail(G_LIKELY(filetypes_hash != NULL));
g_ptr_array_foreach(filetypes_array, filetype_free, NULL);
g_ptr_array_free(filetypes_array, TRUE);
@@ -1070,7 +1070,7 @@
/* default extension */
result = g_key_file_get_string(configh, "settings", "extension", NULL);
if (result == NULL) result = g_key_file_get_string(config, "settings", "extension", NULL);
- if (result != NULL)
+ if (G_LIKELY(result != NULL))
{
setptr(filetypes[ft_id]->extension, result);
}
@@ -1078,7 +1078,7 @@
/* read comment notes */
result = g_key_file_get_string(configh, "settings", "comment_open", NULL);
if (result == NULL) result = g_key_file_get_string(config, "settings", "comment_open", NULL);
- if (result != NULL)
+ if (G_LIKELY(result != NULL))
{
g_free(filetypes[ft_id]->comment_open);
filetypes[ft_id]->comment_open = result;
@@ -1086,7 +1086,7 @@
result = g_key_file_get_string(configh, "settings", "comment_close", NULL);
if (result == NULL) result = g_key_file_get_string(config, "settings", "comment_close", NULL);
- if (result != NULL)
+ if (G_LIKELY(result != NULL))
{
g_free(filetypes[ft_id]->comment_close);
filetypes[ft_id]->comment_close = result;
@@ -1106,7 +1106,7 @@
/* read context action */
result = g_key_file_get_string(configh, "settings", "context_action_cmd", NULL);
if (result == NULL) result = g_key_file_get_string(config, "settings", "context_action_cmd", NULL);
- if (result != NULL)
+ if (G_LIKELY(result != NULL))
{
filetypes[ft_id]->context_action_cmd = result;
}
@@ -1114,7 +1114,7 @@
/* read build settings */
result = g_key_file_get_string(configh, "build_settings", "compiler", NULL);
if (result == NULL) result = g_key_file_get_string(config, "build_settings", "compiler", NULL);
- if (result != NULL)
+ if (G_LIKELY(result != NULL))
{
filetypes[ft_id]->programs->compiler = result;
filetypes[ft_id]->actions->can_compile = TRUE;
@@ -1130,7 +1130,7 @@
result = g_key_file_get_string(configh, "build_settings", "run_cmd", NULL);
if (result == NULL) result = g_key_file_get_string(config, "build_settings", "run_cmd", NULL);
- if (result != NULL)
+ if (G_LIKELY(result != NULL))
{
filetypes[ft_id]->programs->run_cmd = result;
filetypes[ft_id]->actions->can_exec = TRUE;
@@ -1159,7 +1159,7 @@
{
GError *error = NULL;
gboolean done = g_key_file_load_from_file(key_file, file, flags, &error);
- if (! done && error != NULL)
+ if (G_UNLIKELY(! done) && G_UNLIKELY(error != NULL))
{
geany_debug("Failed to open %s (%s)", file, error->message);
g_error_free(error);
@@ -1176,16 +1176,16 @@
GKeyFile *config, *config_home;
GeanyFiletypePrivate *pft;
- g_return_if_fail(ft_id >= 0 && ft_id < (gint) filetypes_array->len);
+ g_return_if_fail(G_LIKELY(ft_id >= 0) && G_LIKELY(ft_id < (gint) filetypes_array->len));
pft = filetypes[ft_id]->priv;
/* when reloading, proceed only if the settings were already loaded */
- if (reload && ! pft->keyfile_loaded)
+ if (reload && G_UNLIKELY(! pft->keyfile_loaded))
return;
/* when not reloading, load the settings only once */
- if (! reload && pft->keyfile_loaded)
+ if (! reload && G_LIKELY(pft->keyfile_loaded))
return;
pft->keyfile_loaded = TRUE;
@@ -1233,7 +1233,7 @@
}
-void filetypes_save_commands()
+void filetypes_save_commands(void)
{
gchar *conf_prefix = g_strconcat(app->configdir,
G_DIR_SEPARATOR_S GEANY_FILEDEFS_SUBDIR G_DIR_SEPARATOR_S "filetypes.", NULL);
@@ -1245,7 +1245,8 @@
GKeyFile *config_home;
gchar *fname, *ext, *data;
- if (! bp->modified) continue;
+ if (G_LIKELY(! bp->modified))
+ continue;
ext = filetypes_get_conf_extension(i);
fname = g_strconcat(conf_prefix, ext, NULL);
@@ -1254,13 +1255,13 @@
config_home = g_key_file_new();
g_key_file_load_from_file(config_home, fname, G_KEY_FILE_KEEP_COMMENTS, NULL);
- if (bp->compiler && *bp->compiler)
+ if (NZV(bp->compiler))
g_key_file_set_string(config_home, "build_settings", "compiler", bp->compiler);
- if (bp->linker && *bp->linker)
+ if (NZV(bp->linker))
g_key_file_set_string(config_home, "build_settings", "linker", bp->linker);
- if (bp->run_cmd && *bp->run_cmd)
+ if (NZV(bp->run_cmd))
g_key_file_set_string(config_home, "build_settings", "run_cmd", bp->run_cmd);
- if (bp->run_cmd2 && *bp->run_cmd2)
+ if (NZV(bp->run_cmd2))
g_key_file_set_string(config_home, "build_settings", "run_cmd2", bp->run_cmd2);
data = g_key_file_to_data(config_home, NULL, NULL);
@@ -1274,7 +1275,7 @@
/* create one file filter which has each file pattern of each filetype */
-GtkFileFilter *filetypes_create_file_filter_all_source()
+GtkFileFilter *filetypes_create_file_filter_all_source(void)
{
GtkFileFilter *new_filter;
guint i, j;
@@ -1284,7 +1285,7 @@
for (i = 0; i < filetypes_array->len; i++)
{
- if (i == GEANY_FILETYPES_NONE)
+ if (G_UNLIKELY(i == GEANY_FILETYPES_NONE))
continue;
for (j = 0; filetypes[i]->pattern[j]; j++)
@@ -1302,7 +1303,7 @@
gint i;
const gchar *title;
- g_return_val_if_fail(ft != NULL, NULL);
+ g_return_val_if_fail(G_LIKELY(ft != NULL), NULL);
new_filter = gtk_file_filter_new();
title = ft->id == GEANY_FILETYPES_NONE ? _("All files") : ft->title;
@@ -1320,7 +1321,7 @@
/* Indicates whether there is a tag parser for the filetype or not. */
gboolean filetype_has_tags(GeanyFiletype *ft)
{
- g_return_val_if_fail(ft != NULL, FALSE);
+ g_return_val_if_fail(G_LIKELY(ft != NULL), FALSE);
return ft->lang >= 0;
}
@@ -1339,7 +1340,7 @@
g_return_val_if_fail(NZV(name), NULL);
ft = g_hash_table_lookup(filetypes_hash, name);
- if (ft == NULL)
+ if (G_UNLIKELY(ft == NULL))
geany_debug("Could not find filetype '%s'.", name);
return ft;
}
@@ -1359,7 +1360,7 @@
ft->priv->error_regex_compiled = (retval == 0); /* prevent recompilation */
- if (retval != 0)
+ if (G_UNLIKELY(retval != 0))
{
gchar buf[256];
regerror(retval, regex, buf, sizeof buf);
@@ -1388,9 +1389,9 @@
if (!NZV(ft->error_regex_string))
return FALSE;
- if (!ft->priv->error_regex_compiled)
+ if (G_UNLIKELY(!ft->priv->error_regex_compiled))
compile_regex(ft, regex);
- if (!ft->priv->error_regex_compiled) /* regex error */
+ if (G_UNLIKELY(!ft->priv->error_regex_compiled)) /* regex error */
return FALSE;
if (regexec(regex, message, G_N_ELEMENTS(pmatch), pmatch, 0) != 0)
@@ -1453,7 +1454,7 @@
g_key_file_has_key(userconfig, "Extensions", filetypes[i]->name, NULL);
list = g_key_file_get_string_list(
(userset) ? userconfig : sysconfig, "Extensions", filetypes[i]->name, &len, NULL);
- if (list && len > 0)
+ if (G_LIKELY(list) && G_LIKELY(len > 0))
{
g_strfreev(filetypes[i]->pattern);
filetypes[i]->pattern = list;
@@ -1477,7 +1478,8 @@
*/
GeanyFiletype *filetypes_index(gint idx)
{
- return (idx >= 0 && idx < (gint) filetypes_array->len) ? filetypes[idx] : NULL;
+ return (G_LIKELY(idx >= 0) && G_LIKELY(idx < (gint) filetypes_array->len)) ?
+ filetypes[idx] : NULL;
}
@@ -1489,7 +1491,7 @@
foreach_slist(ft, node, filetypes_by_title)
{
- if (ft->id != GEANY_FILETYPES_NONE)
+ if (G_LIKELY(ft->id != GEANY_FILETYPES_NONE))
callback(ft, user_data);
}
}
Modified: trunk/src/geanymenubuttonaction.c
===================================================================
--- trunk/src/geanymenubuttonaction.c 2009-04-05 19:58:30 UTC (rev 3686)
+++ trunk/src/geanymenubuttonaction.c 2009-04-05 21:07:40 UTC (rev 3687)
@@ -68,7 +68,7 @@
{
GeanyMenubuttonActionPrivate *priv = GEANY_MENU_BUTTON_ACTION_GET_PRIVATE(data);
- if (! priv->menu_added)
+ if (G_UNLIKELY(! priv->menu_added))
{
gtk_menu_tool_button_set_menu(GTK_MENU_TOOL_BUTTON(priv->button), priv->menu);
priv->menu_added = TRUE;
@@ -161,7 +161,7 @@
{
GeanyMenubuttonActionPrivate *priv;
- g_return_val_if_fail(action != NULL, NULL);
+ g_return_val_if_fail(G_LIKELY(action != NULL), NULL);
priv = GEANY_MENU_BUTTON_ACTION_GET_PRIVATE(action);
Modified: trunk/src/geanyobject.c
===================================================================
--- trunk/src/geanyobject.c 2009-04-05 19:58:30 UTC (rev 3686)
+++ trunk/src/geanyobject.c 2009-04-05 21:07:40 UTC (rev 3687)
@@ -66,7 +66,7 @@
register GCClosure* cc = (GCClosure*) closure;
register gpointer data1, data2;
- g_return_if_fail(n_param_vals == 4);
+ g_return_if_fail(G_LIKELY(n_param_vals == 4));
if (G_CCLOSURE_SWAP_DATA(closure))
{
@@ -112,8 +112,8 @@
register gpointer data1, data2;
gboolean v_return;
- g_return_if_fail(return_value != NULL);
- g_return_if_fail(n_param_values == 3);
+ g_return_if_fail(G_LIKELY(return_value != NULL));
+ g_return_if_fail(G_LIKELY(n_param_values == 3));
if (G_CCLOSURE_SWAP_DATA(closure))
{
@@ -260,12 +260,12 @@
static void geany_object_init(GeanyObject *self)
{
-
+ /* nothing to do */
}
-GObject* geany_object_new(void)
+GObject *geany_object_new(void)
{
- return (GObject*)g_object_new(GEANY_OBJECT_TYPE, NULL);
+ return g_object_new(GEANY_OBJECT_TYPE, NULL);
}
Modified: trunk/src/geanywraplabel.c
===================================================================
--- trunk/src/geanywraplabel.c 2009-04-05 19:58:30 UTC (rev 3686)
+++ trunk/src/geanywraplabel.c 2009-04-05 21:07:40 UTC (rev 3687)
@@ -28,6 +28,7 @@
#include <gtk/gtk.h>
+#include "utils.h"
#include "geanywraplabel.h"
@@ -83,7 +84,7 @@
{
GeanyWrapLabelPrivate *priv;
- if (width == 0)
+ if (G_UNLIKELY(width == 0))
return;
/*
@@ -136,7 +137,7 @@
{
GtkWidget *l = g_object_new(GEANY_WRAP_LABEL_TYPE, NULL);
- if (text != NULL && text[0] != '\0')
+ if (NZV(text))
gtk_label_set_text(GTK_LABEL(l), text);
pango_layout_set_wrap(gtk_label_get_layout(GTK_LABEL(l)), PANGO_WRAP_WORD_CHAR);
Modified: trunk/src/highlighting.c
===================================================================
--- trunk/src/highlighting.c 2009-04-05 19:58:30 UTC (rev 3686)
+++ trunk/src/highlighting.c 2009-04-05 21:07:40 UTC (rev 3687)
@@ -121,16 +121,17 @@
{
gchar *result;
- if (config == NULL || configh == NULL || section == NULL)
+ if (G_UNLIKELY(config == NULL) || G_UNLIKELY(configh == NULL) || G_UNLIKELY(section == NULL))
{
style_sets[index].keywords[pos] = g_strdup(default_value);
return;
}
result = g_key_file_get_string(configh, section, key, NULL);
- if (result == NULL) result = g_key_file_get_string(config, section, key, NULL);
+ if (result == NULL)
+ result = g_key_file_get_string(config, section, key, NULL);
- if (result == NULL)
+ if (G_UNLIKELY(result == NULL))
{
style_sets[index].keywords[pos] = g_strdup(default_value);
}
@@ -145,7 +146,7 @@
{
gchar *result;
- if (config == NULL || configh == NULL)
+ if (G_UNLIKELY(config == NULL) || G_UNLIKELY(configh == NULL))
{
*wordchars = g_strdup(GEANY_WORDCHARS);
return;
@@ -154,7 +155,7 @@
result = g_key_file_get_string(configh, "settings", "wordchars", NULL);
if (result == NULL) result = g_key_file_get_string(config, "settings", "wordchars", NULL);
- if (result == NULL)
+ if (G_UNLIKELY(result == NULL))
{
*wordchars = g_strdup(GEANY_WORDCHARS);
}
@@ -178,26 +179,32 @@
gchar **list;
gsize len;
- g_return_if_fail(config && configh && key_name && default_style && style);
+ g_return_if_fail(G_LIKELY(config));
+ g_return_if_fail(G_LIKELY(configh));
+ g_return_if_fail(G_LIKELY(key_name));
+ g_return_if_fail(G_LIKELY(default_style));
+ g_return_if_fail(G_LIKELY(style));
list = g_key_file_get_string_list(configh, "styling", key_name, &len, NULL);
if (list == NULL)
list = g_key_file_get_string_list(config, "styling", key_name, &len, NULL);
- if (list != NULL && list[0] != NULL)
+ if (G_LIKELY(list) != NULL && G_UNLIKELY(list[0] != NULL))
style->foreground = (gint) utils_strtod(list[0], NULL, FALSE);
else
style->foreground = rotate_rgb(default_style->foreground);
- if (list != NULL && list[1] != NULL)
+ if (G_LIKELY(list != NULL) && G_LIKELY(list[1] != NULL))
style->background = (gint) utils_strtod(list[1], NULL, FALSE);
else
style->background = rotate_rgb(default_style->background);
- if (list != NULL && list[2] != NULL) style->bold = utils_atob(list[2]);
+ if (G_LIKELY(list) != NULL && G_LIKELY(list[2] != NULL))
+ style->bold = utils_atob(list[2]);
else style->bold = default_style->bold;
- if (list != NULL && list[3] != NULL) style->italic = utils_atob(list[3]);
+ if (G_LIKELY(list) != NULL && list[3] != NULL)
+ style->italic = utils_atob(list[3]);
else style->italic = default_style->italic;
g_strfreev(list);
@@ -212,26 +219,34 @@
gchar **list;
gsize len;
- if (config == NULL || configh == NULL || section == NULL) return;
+ g_return_if_fail(G_LIKELY(config));
+ g_return_if_fail(G_LIKELY(configh));
+ g_return_if_fail(G_LIKELY(section));
+ g_return_if_fail(G_LIKELY(key));
list = g_key_file_get_string_list(configh, section, key, &len, NULL);
- if (list == NULL) list = g_key_file_get_string_list(config, section, key, &len, NULL);
+ if (list == NULL)
+ list = g_key_file_get_string_list(config, section, key, &len, NULL);
- if (list != NULL && list[0] != NULL)
+ if (G_LIKELY(list != NULL) && G_LIKELY(list[0] != NULL))
style->foreground = (gint) utils_strtod(list[0], NULL, FALSE);
else if (foreground)
style->foreground = (gint) utils_strtod(foreground, NULL, FALSE);
- if (list != NULL && list[1] != NULL)
+ if (G_LIKELY(list != NULL) && G_LIKELY(list[1] != NULL))
style->background = (gint) utils_strtod(list[1], NULL, FALSE);
else if (background)
style->background = (gint) utils_strtod(background, NULL, FALSE);
- if (list != NULL && list[2] != NULL) style->bold = utils_atob(list[2]);
- else style->bold = utils_atob(bold);
+ if (G_LIKELY(list != NULL) && G_LIKELY(list[2] != NULL))
+ style->bold = utils_atob(list[2]);
+ else
+ style->bold = utils_atob(bold);
- if (list != NULL && list[3] != NULL) style->italic = utils_atob(list[3]);
- else style->italic = FALSE;
+ if (G_LIKELY(list != NULL) && list[3] != NULL)
+ style->italic = utils_atob(list[3]);
+ else
+ style->italic = FALSE;
g_strfreev(list);
}
@@ -245,19 +260,29 @@
gchar *end1, *end2;
gsize len;
- if (config == NULL || configh == NULL || section == NULL) return;
+ g_return_if_fail(G_LIKELY(config));
+ g_return_if_fail(G_LIKELY(configh));
+ g_return_if_fail(G_LIKELY(section));
+ g_return_if_fail(G_LIKELY(key));
list = g_key_file_get_string_list(configh, section, key, &len, NULL);
- if (list == NULL) list = g_key_file_get_string_list(config, section, key, &len, NULL);
+ if (list == NULL)
+ list = g_key_file_get_string_list(config, section, key, &len, NULL);
- if (list != NULL && list[0] != NULL) style->foreground = strtol(list[0], &end1, 10);
- else style->foreground = fdefault_val;
- if (list != NULL && list[1] != NULL) style->background = strtol(list[1], &end2, 10);
- else style->background = sdefault_val;
+ if (G_LIKELY(list != NULL) && G_LIKELY(list[0] != NULL) )
+ style->foreground = strtol(list[0], &end1, 10);
+ else
+ style->foreground = fdefault_val;
+ if (G_LIKELY(list != NULL) && G_LIKELY(list[1] != NULL) )
+ style->background = strtol(list[1], &end2, 10);
+ else
+ style->background = sdefault_val;
/* if there was an error, strtol() returns 0 and end is list[x], so then we use default_val */
- if (list == NULL || list[0] == end1) style->foreground = fdefault_val;
- if (list == NULL || list[1] == end2) style->background = sdefault_val;
+ if (G_UNLIKELY(list == NULL) || G_UNLIKELY(list[0] == end1))
+ style->foreground = fdefault_val;
+ if (G_UNLIKELY(list == NULL) || G_UNLIKELY(list[1] == end2))
+ style->background = sdefault_val;
g_strfreev(list);
}
@@ -280,18 +305,18 @@
static GeanyLexerStyle *get_style(guint ft_id, guint styling_index)
{
- g_assert(ft_id < GEANY_MAX_BUILT_IN_FILETYPES);
+ g_assert(G_LIKELY(ft_id < GEANY_MAX_BUILT_IN_FILETYPES));
- if (ft_id == GEANY_FILETYPES_NONE)
+ if (G_UNLIKELY(ft_id == GEANY_FILETYPES_NONE))
{
- g_assert(styling_index < GCS_MAX);
+ g_assert(G_LIKELY(styling_index < GCS_MAX));
return &common_style_set.styling[styling_index];
}
else
{
StyleSet *set = &style_sets[ft_id];
- g_assert(styling_index < set->count);
+ g_assert(G_LIKELY(styling_index < set->count));
return &set->styling[styling_index];
}
}
@@ -329,11 +354,11 @@
{
GString *s = NULL;
- if (app->tm_workspace)
+ if (G_LIKELY(app->tm_workspace))
{
GPtrArray *tags_array = app->tm_workspace->global_tags;
- if (tags_array)
+ if (G_LIKELY(tags_array))
{
s = symbols_find_tags_as_string(tags_array, TM_GLOBAL_TYPE_MASK, lang);
}
@@ -347,7 +372,7 @@
{
gchar *result;
- if (config == NULL || configh == NULL)
+ if (G_UNLIKELY(config == NULL) || G_UNLIKELY(configh == NULL))
{
result = NULL;
}
@@ -367,7 +392,7 @@
{
static gboolean common_style_set_valid = FALSE;
- if (common_style_set_valid)
+ if (G_LIKELY(common_style_set_valid))
return;
common_style_set_valid = TRUE; /* ensure filetypes.common is only loaded once */
@@ -605,7 +630,7 @@
GString *s;
s = get_global_typenames(lang);
- if (s == NULL)
+ if (G_UNLIKELY(s == NULL))
s = g_string_sized_new(200);
else
g_string_append_c(s, ' '); /* append a space as delimiter to the existing list of words */
@@ -621,7 +646,7 @@
static void
apply_filetype_properties(ScintillaObject *sci, gint lexer, filetype_id ft_id)
{
- g_assert(ft_id != GEANY_FILETYPES_NONE);
+ g_assert(G_LIKELY(ft_id != GEANY_FILETYPES_NONE));
SSM(sci, SCI_SETLEXER, lexer, 0);
@@ -3498,7 +3523,7 @@
* @see Scintilla messages @c SCI_STYLEGETFORE, etc, for use with ScintillaFuncs::send_message(). */
const GeanyLexerStyle *highlighting_get_style(gint ft_id, gint style_id)
{
- if (ft_id < 0 || ft_id > GEANY_MAX_BUILT_IN_FILETYPES)
+ if (G_UNLIKELY(ft_id < 0) || G_UNLIKELY(ft_id > GEANY_MAX_BUILT_IN_FILETYPES))
return NULL;
/* ensure filetype loaded */
Modified: trunk/src/keybindings.c
===================================================================
--- trunk/src/keybindings.c 2009-04-05 19:58:30 UTC (rev 3686)
+++ trunk/src/keybindings.c 2009-04-05 21:07:40 UTC (rev 3687)
@@ -73,8 +73,8 @@
static gboolean on_key_press_event(GtkWidget *widget, GdkEventKey *event, gpointer user_data);
static gboolean on_key_release_event(GtkWidget *widget, GdkEventKey *event, gpointer user_data);
-static gboolean check_current_word(void);
-static gboolean read_current_word(void);
+static gboolean check_current_word(GeanyDocument *doc);
+static gboolean read_current_word(GeanyDocument *doc);
static void cb_func_file_action(guint key_id);
static void cb_func_project_action(guint key_id);
@@ -126,7 +126,7 @@
{
GeanyKeyBinding *kb;
- g_assert(key_id < group->count);
+ g_assert(G_LIKELY(key_id < group->count));
kb = &group->keys[key_id];
@@ -526,7 +526,7 @@
static void on_document_close(GObject *obj, GeanyDocument *doc)
{
- if (! main_status.quitting)
+ if (G_LIKELY(! main_status.quitting))
{
g_queue_remove_all(mru_docs, doc);
g_idle_add(on_idle_close, NULL);
@@ -558,7 +558,7 @@
static void apply_kb_accel(GeanyKeyGroup *group, GeanyKeyBinding *kb, gpointer user_data)
{
- if (kb->key != 0 && kb->menu_item)
+ if (G_LIKELY(kb->key != 0) && kb->menu_item)
{
gtk_widget_add_accelerator(kb->menu_item, "activate", kb_accel_group,
kb->key, kb->mods, GTK_ACCEL_VISIBLE);
@@ -571,14 +571,15 @@
static void keybindings_foreach(KBItemCallback cb, gpointer user_data)
{
gsize g, i;
+ GeanyKeyGroup *group;
+ GeanyKeyBinding *kb;
for (g = 0; g < keybinding_groups->len; g++)
{
- GeanyKeyGroup *group = g_ptr_array_index(keybinding_groups, g);
-
+ group = g_ptr_array_index(keybinding_groups, g);
for (i = 0; i < group->count; i++)
{
- GeanyKeyBinding *kb = &group->keys[i];
+ kb = &group->keys[i];
cb(group, kb, user_data);
}
@@ -594,13 +595,13 @@
GdkModifierType mods;
val = g_key_file_get_string(config, group->name, kb->name, NULL);
- if (val != NULL)
+ if (G_LIKELY(val != NULL))
{
gtk_accelerator_parse(val, &key, &mods);
kb->key = key;
kb->mods = mods;
+ g_free(val);
}
- g_free(val);
}
@@ -636,7 +637,7 @@
{
GeanyKeyBinding *kb = &group->keys[kb_id];
- if (kb->key != 0)
+ if (G_LIKELY(kb->key != 0))
gtk_widget_add_accelerator(menuitem, "activate", accel_group,
kb->key, kb->mods, GTK_ACCEL_VISIBLE);
}
@@ -750,7 +751,7 @@
{
group = g_ptr_array_index(keybinding_groups, g);
- if (g > 0)
+ if (G_LIKELY(g > 0))
{
gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter, -1);
@@ -823,6 +824,7 @@
gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 6);
gtk_box_pack_start(GTK_BOX(vbox), swin, TRUE, TRUE, 0);
+
return dialog;
}
@@ -854,7 +856,7 @@
void keybindings_show_shortcuts(void)
{
- if (key_dialog)
+ if (G_UNLIKELY(key_dialog))
gtk_widget_destroy(key_dialog); /* in case the key_dialog is still visible */
key_dialog = create_dialog();
@@ -900,18 +902,17 @@
/* We have a special case for GEANY_KEYS_EDIT_COMPLETESNIPPET, because we need to
* return FALSE if no completion occurs, so the tab or space is handled normally. */
-static gboolean check_snippet_completion(guint keyval, guint state)
+static gboolean check_snippet_completion(GeanyDocument *doc, guint keyval, guint state)
{
GeanyKeyBinding *kb = keybindings_lookup_item(GEANY_KEY_GROUP_EDITOR,
GEANY_KEYS_EDITOR_COMPLETESNIPPET);
if (kb->key == keyval && kb->mods == state)
{
- GeanyDocument *doc = document_get_current();
GtkWidget *focusw = gtk_window_get_focus(GTK_WINDOW(main_widgets.window));
/* keybinding only valid when scintilla widget has focus */
- if (doc != NULL && focusw == GTK_WIDGET(doc->editor->sci))
+ if (G_LIKELY(doc != NULL) && focusw == GTK_WIDGET(doc->editor->sci))
{
ScintillaObject *sci = doc->editor->sci;
gint pos = sci_get_current_position(sci);
@@ -952,18 +953,17 @@
* would be shown. As a very special case, we differentiate between the Menu key and Shift-F10
* if pressed in the editor widget: the Menu key opens the popup menu, Shift-F10 opens the
* notebook tab list. */
-static gboolean check_menu_key(guint keyval, guint state, guint32 event_time)
+static gboolean check_menu_key(GeanyDocument *doc, guint keyval, guint state, guint32 event_time)
{
if ((keyval == GDK_Menu && state == 0) || (keyval == GDK_F10 && state == GDK_SHIFT_MASK))
{
- GeanyDocument *doc = document_get_current();
GtkWidget *focusw = gtk_window_get_focus(GTK_WINDOW(main_widgets.window));
static GtkWidget *scribble = NULL;
- if (scribble == NULL)
+ if (G_UNLIKELY(scribble == NULL))
scribble = ui_lookup_widget(main_widgets.window, "textview_scribble");
- if (doc != NULL)
+ if (G_LIKELY(doc != NULL))
{
if (focusw == doc->priv->tag_tree)
{
@@ -1062,27 +1062,20 @@
#endif
-static void check_disk_status(void)
-{
- GeanyDocument *doc = document_get_current();
-
- if (doc != NULL)
- {
- document_check_disk_status(doc, FALSE);
- }
-}
-
-
/* central keypress event handler, almost all keypress events go to this function */
static gboolean on_key_press_event(GtkWidget *widget, GdkEventKey *ev, gpointer user_data)
{
guint state, keyval;
gsize g, i;
+ GeanyDocument *doc;
+ GeanyKeyGroup *group;
+ GeanyKeyBinding *kb;
- if (ev->keyval == 0)
+ if (G_UNLIKELY(ev->keyval == 0))
return FALSE;
- check_disk_status();
+ doc = document_get_current();
+ document_check_disk_status(doc, FALSE);
keyval = ev->keyval;
state = ev->state & GEANY_KEYS_MODIFIER_MASK;
@@ -1099,23 +1092,22 @@
if (vte_info.have_vte && check_vte(state, keyval))
return FALSE;
#endif
- if (check_snippet_completion(keyval, state))
+ if (check_snippet_completion(doc, keyval, state))
return TRUE;
- if (check_menu_key(keyval, state, ev->time))
+ if (check_menu_key(doc, keyval, state, ev->time))
return TRUE;
ignore_keybinding = FALSE;
for (g = 0; g < keybinding_groups->len; g++)
{
- GeanyKeyGroup *group = g_ptr_array_index(keybinding_groups, g);
+ group = g_ptr_array_index(keybinding_groups, g);
for (i = 0; i < group->count; i++)
{
- GeanyKeyBinding *kb = &group->keys[i];
-
+ kb = &group->keys[i];
if (keyval == kb->key && state == kb->mods)
{
- if (kb->callback == NULL)
+ if (G_UNLIKELY(kb->callback == NULL))
return FALSE; /* ignore the keybinding */
/* call the corresponding callback function for this shortcut */
@@ -1158,12 +1150,12 @@
{
GeanyKeyGroup *group;
- g_return_val_if_fail(group_id < keybinding_groups->len, NULL);
+ g_return_val_if_fail(G_LIKELY(group_id < keybinding_groups->len), NULL);
group = g_ptr_array_index(keybinding_groups, group_id);
- g_return_val_if_fail(group, NULL);
- g_return_val_if_fail(key_id < group->count, NULL);
+ g_return_val_if_fail(G_LIKELY(group), NULL);
+ g_return_val_if_fail(G_LIKELY(key_id < group->count), NULL);
return &group->keys[key_id];
}
@@ -1177,10 +1169,10 @@
{
GeanyKeyBinding *kb;
- g_return_if_fail(group_id < GEANY_KEY_GROUP_COUNT); /* can't use this for plugin groups */
+ g_return_if_fail(G_LIKELY(group_id < GEANY_KEY_GROUP_COUNT)); /* can't use this for plugin groups */
kb = keybindings_lookup_item(group_id, key_id);
- if (kb)
+ if (G_LIKELY(kb))
kb->callback(key_id);
}
@@ -1251,6 +1243,8 @@
static void cb_func_search_action(guint key_id)
{
+ GeanyDocument *doc;
+
switch (key_id)
{
case GEANY_KEYS_SEARCH_FIND:
@@ -1272,11 +1266,13 @@
case GEANY_KEYS_SEARCH_PREVIOUSMESSAGE:
on_previous_message1_activate(NULL, NULL); break;
case GEANY_KEYS_SEARCH_FINDUSAGE:
- read_current_word();
+ doc = document_get_current();
+ read_current_word(doc);
on_find_usage1_activate(NULL, NULL);
break;
case GEANY_KEYS_SEARCH_FINDDOCUMENTUSAGE:
- read_current_word();
+ doc = document_get_current();
+ read_current_word(doc);
on_find_document_usage1_activate(NULL, NULL);
break;
}
@@ -1334,11 +1330,12 @@
BuildMenuItems *menu_items;
GeanyDocument *doc = document_get_current();
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return;
ft = doc->file_type;
- if (! ft) return;
+ if (G_UNLIKELY(! ft))
+ return;
menu_items = build_get_menu_items(ft->id);
switch (key_id)
@@ -1384,12 +1381,11 @@
}
-static gboolean read_current_word(void)
+static gboolean read_current_word(GeanyDocument *doc)
{
gint pos;
- GeanyDocument *doc = document_get_current();
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return FALSE;
pos = sci_get_current_position(doc->editor->sci);
@@ -1401,9 +1397,9 @@
}
-static gboolean check_current_word(void)
+static gboolean check_current_word(GeanyDocument *doc)
{
- if (!read_current_word())
+ if (!read_current_word(doc))
{
utils_beep();
return FALSE;
@@ -1432,7 +1428,7 @@
case GEANY_KEYS_FOCUS_EDITOR:
{
GeanyDocument *doc = document_get_current();
- if (doc != NULL)
+ if (G_LIKELY(doc != NULL))
gtk_widget_grab_focus(GTK_WIDGET(doc->editor->sci));
break;
}
@@ -1557,7 +1553,7 @@
if (switch_dialog_cancelled)
return FALSE;
- if (!switch_dialog)
+ if (G_UNLIKELY(! switch_dialog))
switch_dialog = create_switch_dialog();
geany_wrap_label_set_text(GTK_LABEL(switch_dialog_label),
@@ -1572,7 +1568,7 @@
/* TODO: MRU switching order */
GeanyDocument *last_doc = g_queue_peek_head(mru_docs);
- if (!DOC_VALID(last_doc))
+ if (! DOC_VALID(last_doc))
return;
gtk_notebook_set_current_page(GTK_NOTEBOOK(main_widgets.notebook),
@@ -1580,7 +1576,7 @@
/* if there's a modifier key, we can switch back in MRU order each time unless
* the key is released */
- if (!switch_dialog_cancelled)
+ if (! switch_dialog_cancelled)
{
on_switch_timeout(NULL); /* update filename label */
}
@@ -1604,7 +1600,7 @@
gint cur_page = gtk_notebook_get_current_page(nb);
GeanyDocument *doc = document_get_current();
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return;
sci = GTK_WIDGET(doc->editor->sci);
@@ -1638,7 +1634,7 @@
{
gint pos, new_pos;
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return;
pos = sci_get_current_position(doc->editor->sci);
@@ -1658,7 +1654,7 @@
{
GeanyDocument *doc = document_get_current();
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return;
switch (key_id)
@@ -1688,7 +1684,7 @@
gint cur_line;
GeanyDocument *doc = document_get_current();
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return;
cur_line = sci_get_current_line(doc->editor->sci);
@@ -1737,11 +1733,11 @@
return;
}
case GEANY_KEYS_GOTO_TAGDEFINITION:
- if (check_current_word())
+ if (check_current_word(doc))
symbols_goto_tag(editor_info.current_word, TRUE);
return;
case GEANY_KEYS_GOTO_TAGDECLARATION:
- if (check_current_word())
+ if (check_current_word(doc))
symbols_goto_tag(editor_info.current_word, FALSE);
return;
}
@@ -1797,7 +1793,7 @@
GtkWidget *focusw = gtk_window_get_focus(GTK_WINDOW(main_widgets.window));
/* edit keybindings only valid when scintilla widget has focus */
- if (doc == NULL || focusw != GTK_WIDGET(doc->editor->sci))
+ if (G_UNLIKELY(doc == NULL) || focusw != GTK_WIDGET(doc->editor->sci))
return;
switch (key_id)
@@ -1840,7 +1836,7 @@
editor_show_macro_list(doc->editor);
break;
case GEANY_KEYS_EDITOR_CONTEXTACTION:
- if (check_current_word())
+ if (check_current_word(doc))
on_context_action1_activate(GTK_MENU_ITEM(ui_lookup_widget(main_widgets.editor_menu,
"context_action1")), NULL);
break;
@@ -1873,7 +1869,7 @@
GtkWidget *focusw = gtk_window_get_focus(GTK_WINDOW(main_widgets.window));
/* keybindings only valid when scintilla widget has focus */
- if (doc == NULL || focusw != GTK_WIDGET(doc->editor->sci))
+ if (G_UNLIKELY(doc == NULL) || focusw != GTK_WIDGET(doc->editor->sci))
return;
switch (key_id)
@@ -1927,12 +1923,12 @@
/* common function for select keybindings, only valid when scintilla has focus. */
static void cb_func_select_action(guint key_id)
{
- GeanyDocument *doc = document_get_current();
+ GeanyDocument *doc;
GtkWidget *focusw = gtk_window_get_focus(GTK_WINDOW(main_widgets.window));
static GtkWidget *scribble_widget = NULL;
/* special case for Select All in the scribble widget */
- if (scribble_widget == NULL) /* lookup the scribble widget only once */
+ if (G_UNLIKELY(scribble_widget == NULL)) /* lookup the scribble widget only once */
scribble_widget = ui_lookup_widget(main_widgets.window, "textview_scribble");
if (key_id == GEANY_KEYS_SELECT_ALL && focusw == scribble_widget)
{
@@ -1940,8 +1936,9 @@
return;
}
+ doc = document_get_current();
/* keybindings only valid when scintilla widget has focus */
- if (doc == NULL || focusw != GTK_WIDGET(doc->editor->sci))
+ if (G_UNLIKELY(doc == NULL) || focusw != GTK_WIDGET(doc->editor->sci))
return;
switch (key_id)
@@ -1965,7 +1962,7 @@
static void cb_func_document_action(guint key_id)
{
GeanyDocument *doc = document_get_current();
- if (doc == NULL)
+ if (G_UNLIKELY(doc == NULL))
return;
switch (key_id)
@@ -2011,7 +2008,8 @@
GtkWidget *focusw = gtk_window_get_focus(GTK_WINDOW(main_widgets.window));
/* keybindings only valid when scintilla widget has focus */
- if (doc == NULL || focusw != GTK_WIDGET(doc->editor->sci)) return;
+ if (G_UNLIKELY(doc == NULL) || focusw != GTK_WIDGET(doc->editor->sci))
+ return;
switch (key_id)
{
Modified: trunk/src/keyfile.c
===================================================================
--- trunk/src/keyfile.c 2009-04-05 19:58:30 UTC (rev 3686)
+++ trunk/src/keyfile.c 2009-04-05 21:07:40 UTC (rev 3687)
@@ -233,7 +233,7 @@
gchar *locale_filename;
GeanyFiletype *ft = doc->file_type;
- if (ft == NULL) /* can happen when saving a new file when quitting */
+ if (G_UNLIKELY(ft == NULL)) /* can happen when saving a new file when quitting */
ft = filetypes[GEANY_FILETYPES_NONE];
locale_filename = utils_get_locale_from_utf8(doc->file_name);
@@ -275,7 +275,7 @@
for (i = 0; i < max; i++)
{
@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list