if (dict_ilookup_primitive(dict, key)) {
fatal("duplicate key \"%s\" in dictionary",key);
}
- e=safe_malloc(sizeof(*e),"dict_add");
+ NEW(e);
e->next=dict->entries;
e->key=key;
e->val=val;
{
dict_t *d;
- d=safe_malloc(sizeof(*d),"dict_new");
+ NEW(d);
d->parent=parent;
d->search=NULL;
d->entries=NULL;
static struct p_node *node_copy(struct p_node *n)
{
struct p_node *r;
- r=safe_malloc(sizeof(*r),"node_copy");
+ NEW(r);
*r=*n;
return r;
}
{
item_t *i;
- i=safe_malloc(sizeof(*i),"new_item");
+ NEW(i);
i->type=type;
i->loc=loc;
return i;
if (!i) {
/* Did't find it; create a new one */
- i=safe_malloc(sizeof(*i),"intern: alloc list entry");
+ NEW(i);
i->a=safe_strdup(s,"intern: alloc string");
i->next=atoms;
atoms=i;
l=NULL;
r=NULL;
for (i=a; i; i=i->next) {
- b=safe_malloc(sizeof(*b),"list_copy");
+ NEW(b);
if (l) l->next=b; else r=b;
l=b;
b->item=i->item;
{
list_t *l;
- l=safe_malloc(sizeof(*l),"list_append");
+ NEW(l);
l->item=item;
l->next=NULL;
void add_closure(dict_t *dict, cstring_t name, apply_fn apply)
{
closure_t *c;
- c=safe_malloc(sizeof(*c),"add_closure");
+ NEW(c);
c->description=name;
c->type=CL_PURE;
c->apply=apply;
}
int32_t ll=list_length(l);
- ra=safe_malloc_ary(sizeof(*ra), ll+1, "dict_read_string_array");
+ NEW_ARY(ra, ll+1);
for (rap=ra; l; l=l->next,rap++) {
item_t *it=l->item;
if (it->type!=t_string)