[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: gEDA-user: Small patch to aid use of lib dmalloc
On Mon, 2010-12-06 at 16:58 +1100, Stephen Ecob wrote:
> If you use (or intend to use) lib dmalloc with PCB you will find the
> following useful.
>
> I've uploaded a patch against current heaad to sourceforge, ID
> #3129279, described as follows:
Looks useful, I will push it, however, please explain the following first:
+# define MyCalloc(a, b, c) calloc((a) ? (a) : 1, (b) ? (b) : 1)
+# define MyMalloc(a, b) malloc((a) ? (a) : 1)
+# define MyRealloc(a, b, c) ((a) ? realloc(a, (b) ? (b) : 1) : malloc((b) ? (b) : 1))
I don't see why we are adding a synonym with requesting zero bytes /
zero items, with requesting one item?
Is there anywhere (BROKEN) in PCB which requests zero items / bytes, and
expects that call to work?
I'd rather commit:
+# define MyCalloc(a, b, c) calloc((a), (b))
+# define MyMalloc(a, b) malloc((a))
+# define MyRealloc(a, b, c) realloc((a), (b))
NB: realloc will "do the right thing" if the previous pointer passed is
NULL, no need to check and swap for a malloc call.
One final nit, I'd prefer not to see the double negative in the header
files:
#ifndef HAVE_LIBDMALLOC
....NON D-Malloc stuff
#else
....D-Malloc stuff
#endif
Could more readably be defined as:
#ifdef HAVE_LIBDMALLOC
....D-Malloc stuff
#else
....NON D-Malloc stuff
#endif
If you feel that your version is better as it matches the various other
#ifndef HAVE_LIBDMALLOC you added, then fair enough, I'll push as is
pending an answer on the #define questions.
FWIW, I'd love to see our own custom memory allocation routines die in a
fire. Lets plan to eventually replace them with malloc / realloc / free
calls, and this won't be an issue.
I did loose some respect for the dmalloc author(s) when I noticed on
their page they can't spell "Microsoft Windows" correctly. "Windoze"
In general, valgrind (probably not even conceived of when dmalloc was
first written), is a much more useful tool for memory leak diagnosis, so
I wouldn't go _too_ far out of our way to make things dmalloc suitable.
You still won't see good back-traces for the r_tree allocations, for
example. (Given your usage and symptoms, I guess some r_trees are being
leaked in the autorouter code?)
--
Peter Clifton
Electrical Engineering Division,
Engineering Department,
University of Cambridge,
9, JJ Thomson Avenue,
Cambridge
CB3 0FA
Tel: +44 (0)7729 980173 - (No signal in the lab!)
Tel: +44 (0)1223 748328 - (Shared lab phone, ask for me)
_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user