[ekg2-commit] ekg2: dynstuff.c (HEAD) [darkjames]

CVS commit cvs w amba.bydg.pdi.net
Śro, 21 Lut 2007, 01:11:44 CET


Module name:	ekg2
Changes by:	darkjames	07/02/21 01:11:41

Modified files:
	dynstuff.c

Log message:
optimize string_init() call xstrlen() once.
from gprof too:
#v+
		0.00	0.00	 223/823	 string_init (dynstuff.c:378 @ 805e339) [9367]
		0.00	0.00	 223/823	 string_init (dynstuff.c:379 @ 805e346) [9370]
[18]	 0.0	0.00	0.00	 823	     xstrlen (xmalloc.c:261 @ 807d020) [18]
#v-

Index: dynstuff.c
===================================================================
RCS file: /home/cvs/ekg2/ekg/dynstuff.c,v
diff -d -u -r1.26 -r1.27
--- dynstuff.c	6 Dec 2006 22:46:52 -0000	1.26
+++ dynstuff.c	21 Feb 2007 00:11:39 -0000	1.27
@@ -367,16 +367,18 @@
  *
  * zwraca zaalokowaną strukturę `string'.
  */
-string_t string_init(const char *value)
-{
+string_t string_init(const char *value) {
 	string_t tmp = xmalloc(sizeof(struct string));
+	size_t valuelen;
 
 	if (!value)
 		value = "";
 
+	valuelen = xstrlen(value);
+
 	tmp->str = xstrdup(value);
-	tmp->len = xstrlen(value);
-	tmp->size = xstrlen(value) + 1;
+	tmp->len = valuelen;
+	tmp->size = valuelen + 1;
 
 	return tmp;
 }


Więcej informacji o liście dyskusyjnej ekg2-commit