1 /* Copyright (c) 1997-1999 Miller Puckette.
2 * For information on usage and redistribution, and for a DISCLAIMER OF ALL
3 * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */
15 /* #define DEBUGMEM */
17 static int totalmem
= 0;
20 void *getbytes(size_t nbytes
)
23 if (nbytes
< 1) nbytes
= 1;
24 ret
= (void *)calloc(nbytes
, 1);
26 fprintf(stderr
, "new %x %d\n", (int)ret
, nbytes
);
32 post("pd: getbytes() failed -- out of memory");
36 void *getzbytes(size_t nbytes
) /* obsolete name */
38 return (getbytes(nbytes
));
41 void *copybytes(void *src
, size_t nbytes
)
44 ret
= getbytes(nbytes
);
46 memcpy(ret
, src
, nbytes
);
50 void *resizebytes(void *old
, size_t oldsize
, size_t newsize
)
53 if (newsize
< 1) newsize
= 1;
54 if (oldsize
< 1) oldsize
= 1;
55 ret
= (void *)realloc((char *)old
, newsize
);
56 if (newsize
> oldsize
&& ret
)
57 memset(((char *)ret
) + oldsize
, 0, newsize
- oldsize
);
59 fprintf(stderr
, "resize %x %d --> %x %d\n", (int)old
, oldsize
, (int)ret
, newsize
);
62 totalmem
+= (newsize
- oldsize
);
65 post("pd: resizebytes() failed -- out of memory");
69 void freebytes(void *fatso
, size_t nbytes
)
74 fprintf(stderr
, "free %x %d\n", (int)fatso
, nbytes
);
85 void glob_foo(void *dummy
, t_symbol
*s
, int argc
, t_atom
*argv
)
87 fprintf(stderr
, "total mem %d\n", totalmem
);
90 /* Copyright (c) 1997-1999 Miller Puckette.
91 * For information on usage and redistribution, and for a DISCLAIMER OF ALL
92 * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */
104 /* #define DEBUGMEM */
106 static int totalmem
= 0;
109 void *getbytes(size_t nbytes
)
112 if (nbytes
< 1) nbytes
= 1;
113 ret
= (void *)calloc(nbytes
, 1);
115 fprintf(stderr
, "new %x %d\n", (int)ret
, nbytes
);
121 post("pd: getbytes() failed -- out of memory");
125 void *getzbytes(size_t nbytes
) /* obsolete name */
127 return (getbytes(nbytes
));
130 void *copybytes(void *src
, size_t nbytes
)
133 ret
= getbytes(nbytes
);
135 memcpy(ret
, src
, nbytes
);
139 void *resizebytes(void *old
, size_t oldsize
, size_t newsize
)
142 if (newsize
< 1) newsize
= 1;
143 if (oldsize
< 1) oldsize
= 1;
144 ret
= (void *)realloc((char *)old
, newsize
);
145 if (newsize
> oldsize
&& ret
)
146 memset(((char *)ret
) + oldsize
, 0, newsize
- oldsize
);
148 fprintf(stderr
, "resize %x %d --> %x %d\n", (int)old
, oldsize
, (int)ret
, newsize
);
151 totalmem
+= (newsize
- oldsize
);
154 post("pd: resizebytes() failed -- out of memory");
158 void freebytes(void *fatso
, size_t nbytes
)
163 fprintf(stderr
, "free %x %d\n", (int)fatso
, nbytes
);
174 void glob_foo(void *dummy
, t_symbol
*s
, int argc
, t_atom
*argv
)
176 fprintf(stderr
, "total mem %d\n", totalmem
);