[geany/geany-plugins] de60a4: debugger/gdb_mi: Improve implementation of parse_string()

Colomban Wendling git-noreply at xxxxx
Sun Feb 7 03:35:36 UTC 2016


Branch:      refs/heads/master
Author:      Colomban Wendling <ban at herbesfolles.org>
Committer:   Colomban Wendling <ban at herbesfolles.org>
Date:        Sun, 07 Feb 2016 03:35:36 UTC
Commit:      de60a4c48a36fb8a080e981a5b6917141c2863b7
             https://github.com/geany/geany-plugins/commit/de60a4c48a36fb8a080e981a5b6917141c2863b7

Log Message:
-----------
debugger/gdb_mi: Improve implementation of parse_string()

Simply copy the whole block at once instead of populating a buffer byte
by byte.

This gives a speedup of about 12% on typical data.


Modified Paths:
--------------
    debugger/src/gdb_mi.c

Modified: debugger/src/gdb_mi.c
8 lines changed, 4 insertions(+), 4 deletions(-)
===================================================================
@@ -182,15 +182,15 @@ static gchar *parse_cstring(const gchar **p)
  *        the docs aren't clear on this */
 static gchar *parse_string(const gchar **p)
 {
-	GString *str = g_string_new(NULL);
+	const gchar *base = *p;
 
 	if (g_ascii_isalpha(**p) || strchr("-_.", **p))
 	{
-		g_string_append_c(str, **p);
 		for ((*p)++; g_ascii_isalnum(**p) || strchr("-_.", **p); (*p)++)
-			g_string_append_c(str, **p);
+			;
 	}
-	return g_string_free(str, FALSE);
+
+	return g_strndup (base, *p - base);
 }
 
 /* parses: string "=" value */



--------------
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