[geany/geany-plugins] c4de25: lineoperations: unnecessary heap allocations
Sylvan Mostert
git-noreply at xxxxx
Tue Jul 2 07:30:36 UTC 2019
Branch: refs/heads/master
Author: Sylvan Mostert <smostert.dev at gmail.com>
Committer: Sylvan Mostert <smostert.dev at gmail.com>
Date: Wed, 08 Mar 2017 03:34:06 UTC
Commit: c4de25225a192aed99b247dd39fa43cdac68147b
https://github.com/geany/geany-plugins/commit/c4de25225a192aed99b247dd39fa43cdac68147b
Log Message:
-----------
lineoperations: unnecessary heap allocations
Modified Paths:
--------------
lineoperations/src/lineoperations.c
Modified: lineoperations/src/lineoperations.c
40 lines changed, 13 insertions(+), 27 deletions(-)
===================================================================
@@ -156,42 +156,37 @@ action_indir_manip_item(GtkMenuItem *menuitem, gpointer gdata)
/* function pointer to function to be used */
gint (*func)(gchar **lines, gint num_lines, gchar *new_file) = gdata;
GeanyDocument *doc = document_get_current();
-
g_return_if_fail(doc != NULL);
+ struct lo_lines sel;
gint num_chars = 0;
gint i = 0;
gint lines_affected = 0;
- struct lo_lines *sel = g_malloc(sizeof(struct lo_lines));
- sel->is_selection = FALSE;
- sel->start_line = 0;
- sel->end_line = 0;
-
- get_current_sel_lines(doc->editor->sci, sel);
- gint num_lines = (sel->end_line - sel->start_line) + 1;
+ get_current_sel_lines(doc->editor->sci, &sel);
+ gint num_lines = (sel.end_line - sel.start_line) + 1;
/* if last line within selection ensure that the file ends with newline */
- if((sel->end_line + 1) == sci_get_line_count(doc->editor->sci))
- ensure_final_newline(doc->editor, &num_lines, sel);
+ if((sel.end_line + 1) == sci_get_line_count(doc->editor->sci))
+ ensure_final_newline(doc->editor, &num_lines, &sel);
/* get num_chars and **lines */
gchar **lines = g_malloc(sizeof(gchar *) * num_lines);
for(i = 0; i < num_lines; i++)
{
num_chars += (sci_get_line_length(doc->editor->sci,
- (i + sel->start_line)));
+ (i + sel.start_line)));
lines[i] = sci_get_line(doc->editor->sci,
- (i + sel->start_line));
+ (i + sel.start_line));
}
gchar *new_file = g_malloc(sizeof(gchar) * (num_chars + 1));
new_file[0] = '\0';
/* select lines that will be replaced with array */
- select_lines(doc->editor, sel);
+ select_lines(doc->editor, &sel);
sci_start_undo_action(doc->editor->sci);
@@ -202,9 +197,7 @@ action_indir_manip_item(GtkMenuItem *menuitem, gpointer gdata)
sci_replace_sel(doc->editor->sci, new_file);
/* select affected lines and set statusbar message */
- user_indicate(doc->editor, lines_affected, sel);
-
- g_free(sel);
+ user_indicate(doc->editor, lines_affected, &sel);
sci_end_undo_action(doc->editor->sci);
@@ -227,26 +220,19 @@ action_sci_manip_item(GtkMenuItem *menuitem, gpointer gdata)
/* function pointer to gdata -- function to be used */
gint (*func)(ScintillaObject *, gint, gint) = gdata;
GeanyDocument *doc = document_get_current();
-
g_return_if_fail(doc != NULL);
- struct lo_lines *sel = g_malloc(sizeof(struct lo_lines));
- sel->is_selection = FALSE;
- sel->start_line = 0;
- sel->end_line = 0;
-
- get_current_sel_lines(doc->editor->sci, sel);
+ struct lo_lines sel;
+ get_current_sel_lines(doc->editor->sci, &sel);
gint lines_affected = 0;
sci_start_undo_action(doc->editor->sci);
- lines_affected = func(doc->editor->sci, sel->start_line, sel->end_line);
+ lines_affected = func(doc->editor->sci, sel.start_line, sel.end_line);
/* put message in ui_statusbar, and highlight lines that were affected */
- user_indicate(doc->editor, lines_affected, sel);
-
- g_free(sel);
+ user_indicate(doc->editor, lines_affected, &sel);
sci_end_undo_action(doc->editor->sci);
}
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
More information about the Plugins-Commits
mailing list