[PD-cvs] pd/src builtins.c,1.1.2.11,1.1.2.12
Mathieu Bouchard
matju at users.sourceforge.net
Tue Jan 9 19:33:56 CET 2007
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2360
Modified Files:
Tag: desiredata
builtins.c
Log Message:
remove useless t_listelem.
Index: builtins.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/builtins.c,v
retrieving revision 1.1.2.11
retrieving revision 1.1.2.12
diff -C2 -d -r1.1.2.11 -r1.1.2.12
*** builtins.c 9 Jan 2007 15:07:39 -0000 1.1.2.11
--- builtins.c 9 Jan 2007 18:33:54 -0000 1.1.2.12
***************
*** 668,699 ****
/* -------------- utility functions: storage, copying -------------- */
- /* List element for storage. Keep an atom and, in case it's a pointer,
- an associated 'gpointer' to protect against stale pointers. */
- struct t_listelem {
- t_atom a;
- t_gpointer l_p;
- };
typedef struct t_alist : t_pd {
int n; /* number of items */
! t_listelem *l_vec; /* pointer to items */
};
- #if 0 /* probably won't use this version... */
- #ifdef HAVE_ALLOCA
- #define LIST_ALLOCA(x, n) ( \
- (x).n = (n), \
- (x).l_vec = (t_listelem *)((n) < LIST_NGETBYTE ? \
- alloca((n) * sizeof(t_listelem)) : getbytes((n) * sizeof(t_listelem)))) \
- #define LIST_FREEA(x) (((x).n < LIST_NGETBYTE || (free((x).l_vec), 0)))
-
- #else
- #define LIST_ALLOCA(x, n) ( \
- (x).n = (n), \
- (x).l_vec = (t_listelem *)getbytes((n) * sizeof(t_listelem)))
- #define LIST_FREEA(x) (free((x).l_vec))
- #endif
- #endif
-
#if HAVE_ALLOCA
#define ATOMS_ALLOCA(x, n) ((x) = (t_atom *)((n) < LIST_NGETBYTE ? \
--- 668,678 ----
/* -------------- utility functions: storage, copying -------------- */
+ /* damn like binbuf */
typedef struct t_alist : t_pd {
int n; /* number of items */
! t_atom *v; /* pointer to items */
};
#if HAVE_ALLOCA
#define ATOMS_ALLOCA(x, n) ((x) = (t_atom *)((n) < LIST_NGETBYTE ? \
***************
*** 715,756 ****
x->_class = alist_class;
x->n = 0;
! x->l_vec = 0;
}
static void alist_clear(t_alist *x) {
for (int i = 0; i < x->n; i++)
! if (x->l_vec[i].a.a_type == A_POINTER) gpointer_unset(x->l_vec[i].a.a_w.w_gpointer);
! if (x->l_vec) free(x->l_vec);
}
static void alist_list(t_alist *x, t_symbol *s, int argc, t_atom *argv) {
alist_clear(x);
! if (!(x->l_vec = (t_listelem *)getbytes(argc * sizeof(*x->l_vec)))) {
! x->n = 0;
! error("list_alloc: out of memory");
! return;
! }
x->n = argc;
! for (int i = 0; i < argc; i++) {
! x->l_vec[i].a = argv[i];
! if (x->l_vec[i].a.a_type == A_POINTER)
! gpointer_copy(x->l_vec[i].a.a_w.w_gpointer, &x->l_vec[i].l_p);
! }
}
static void alist_anything(t_alist *x, t_symbol *s, int argc, t_atom *argv) {
alist_clear(x);
! if (!(x->l_vec = (t_listelem *)getbytes((argc+1) * sizeof(*x->l_vec)))) {
! x->n = 0;
! error("list_alloc: out of memory");
! return;
! }
x->n = argc+1;
! SETSYMBOL(&x->l_vec[0].a, s);
! for (int i = 0; i < argc; i++) {
! x->l_vec[i+1].a = argv[i];
! if (x->l_vec[i+1].a.a_type == A_POINTER)
! gpointer_copy(x->l_vec[i+1].a.a_w.w_gpointer, &x->l_vec[i+1].l_p);
! }
}
static void alist_toatoms(t_alist *x, t_atom *to) {
! for (int i = 0; i < x->n; i++) to[i] = x->l_vec[i].a;
}
static void alist_setup() {
--- 694,721 ----
x->_class = alist_class;
x->n = 0;
! x->v = 0;
}
static void alist_clear(t_alist *x) {
for (int i = 0; i < x->n; i++)
! if (x->v[i].a_type == A_POINTER) gpointer_unset(x->v[i].a_w.w_gpointer);
! if (x->v) free(x->v);
}
static void alist_list(t_alist *x, t_symbol *s, int argc, t_atom *argv) {
alist_clear(x);
! x->v = (t_atom *)getbytes(argc * sizeof(*x->v));
! if (!x->v) {x->n = 0; error("list_alloc: out of memory"); return;}
x->n = argc;
! for (int i = 0; i < argc; i++) x->v[i] = argv[i];
}
static void alist_anything(t_alist *x, t_symbol *s, int argc, t_atom *argv) {
alist_clear(x);
! x->v = (t_atom *)getbytes((argc+1) * sizeof(*x->v));
! if (!x->v) {x->n = 0; error("list_alloc: out of memory"); return;}
x->n = argc+1;
! SETSYMBOL(&x->v[0], s);
! for (int i = 0; i < argc; i++) x->v[i+1] = argv[i];
}
static void alist_toatoms(t_alist *x, t_atom *to) {
! for (int i = 0; i < x->n; i++) to[i] = x->v[i];
}
static void alist_setup() {
More information about the Pd-cvs
mailing list