[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