#ifndef _argpack_rep_
#define _argpack_rep_

#include <stddef.h>
#include <X11/Intrinsic.h>
#include "argpack.h"

/* Invariant: Count = (size of block pointed to by args)/sizeof(Arg) */

typedef struct st_ArgPack_rep {
  int Count;
  Arg *args;
  unsigned count_used:1;
  unsigned args_used:1;
  unsigned kept:1;
} ArgPack_rep;

static ArgPack_rep *most_recent_argpack;

#define CHECK_FOR_DEATH(apr) ((apr) != NULL && (((apr)->count_used \
						 & (apr)->args_used) \
						& !((apr)->kept)))

#define lower(obj) ((ArgPack_rep *)obj)
#define raise(obj) ((ArgPack)obj)
#define create() ((ArgPack_rep *) XtMalloc((Cardinal)sizeof (ArgPack_rep)))
#define destroy(rep_p) (XtFree(rep_p))

#endif

