Nicholas Marriott wrote: > Sure, but this idiom is all over the place in opencvs, are you going to > change the rest?
As Theo mentioned recently, there's an inherent tradeoff here. Stack allocation is faster at runtime and easier to write. However, we miss out on malloc's memory sanitization. So, maybe we should only change it in performance-relevant areas where we're very confident in the safety of the program logic. > On Mon, Nov 02, 2015 at 12:31:14PM -0500, Michael McConville wrote: > > Don't bother mallocing a statically-sized 1,024-byte chunk of mem, for > > simplicity and speed. > > > > ok? > > > > > > Index: usr.bin/cvs/server.c > > =================================================================== > > RCS file: /cvs/src/usr.bin/cvs/server.c,v > > retrieving revision 1.102 > > diff -u -p -r1.102 server.c > > --- usr.bin/cvs/server.c 16 Jan 2015 06:40:07 -0000 1.102 > > +++ usr.bin/cvs/server.c 2 Nov 2015 17:17:13 -0000 > > @@ -323,7 +323,7 @@ void > > cvs_server_directory(char *data) > > { > > CVSENTRIES *entlist; > > - char *dir, *repo, *parent, *entry, *dirn, *p; > > + char *dir, *repo, *parent, entry[CVS_ENT_MAXLINELEN], *dirn, *p; > > > > if (current_cvsroot == NULL) > > fatal("No Root specified for Directory"); > > @@ -357,13 +357,11 @@ cvs_server_directory(char *data) > > fatal("cvs_server_directory: %s", strerror(errno)); > > > > if (strcmp(parent, ".")) { > > - entry = xmalloc(CVS_ENT_MAXLINELEN); > > cvs_ent_line_str(dirn, NULL, NULL, NULL, NULL, 1, 0, > > entry, CVS_ENT_MAXLINELEN); > > > > entlist = cvs_ent_open(parent); > > cvs_ent_add(entlist, entry); > > - xfree(entry); > > } > > > > if (server_currentdir != NULL) > >