mirror of
https://github.com/cookiengineer/audacity
synced 2025-05-11 22:51:06 +02:00
26 lines
531 B
C
26 lines
531 B
C
/*
|
|
* cque.h
|
|
* macros for free lists.
|
|
*/
|
|
|
|
typedef struct cque {
|
|
struct cque *qnext;
|
|
} CQUE;
|
|
|
|
#define Qinit(q1) { (q1) = 0; }
|
|
|
|
/* q1 points to a stack CQUE*, new is an element to insert */
|
|
#define Qenter(q1,new) { \
|
|
((CQUE *)(new))->qnext = ((CQUE *)(q1)); \
|
|
q1 = ((CQUE *)(new)); }
|
|
|
|
|
|
/* q1 points to a list of CQUE*: remove elt and assign to new */
|
|
/* NOTE: q1 must be non-empty */
|
|
#define Qget(q1,newtype,new) { \
|
|
(new) = (newtype)(q1); \
|
|
q1 = ((CQUE *)(q1))->qnext; }
|
|
|
|
|
|
#define Qempty(q1) ((q1) == 0)
|