static_assert(sizeof(int) >= 4, "unsupported int size");
 
        aatree_init(&aatree, NULL, NULL);
-       cbtree = cbtree_create(NULL, NULL, NULL, USUAL_ALLOC);
+       cbtree = cbtree_create(NULL, NULL, NULL, NULL);
        cbtree_destroy(cbtree);
        daemonize(NULL, false);
        hash_lookup3("foo", 3);
 
        struct CBTree *tree;
        int i;
 
-       tree = cbtree_create(my_getkey, my_node_free, NULL, USUAL_ALLOC);
+       tree = cbtree_create(my_getkey, my_node_free, NULL, NULL);
 
        str_check(my_search(tree, 1), "not found");
 
        srandom(123123);
        memset(is_added, 0, sizeof(is_added));
 
-       tree = cbtree_create(my_getkey, my_node_free, NULL, USUAL_ALLOC);
+       tree = cbtree_create(my_getkey, my_node_free, NULL, NULL);
 
        while (total < 20000) {
                int r = random() & 15;
 
                len = strlen(str);
        }
 
-       ctx = digest_new(impl, USUAL_ALLOC);
+       ctx = digest_new(impl, NULL);
        if (!ctx)
                return "NOMEM";
        reslen = digest_result_len(ctx);
        len = strlen(hex) / 2;
        buf = fromhex(hex, len);
 
-       ctx = digest_new(mdinfo, USUAL_ALLOC);
+       ctx = digest_new(mdinfo, NULL);
        if (!ctx)
                return "NOMEM";
        digest_update(ctx, buf, len);
        int len = strlen(str);
        int reslen;
 
-       ctx = hmac_new(impl, key, strlen(key), USUAL_ALLOC);
+       ctx = hmac_new(impl, key, strlen(key), NULL);
        if (!ctx)
                return "NOMEM";
        reslen = hmac_result_len(ctx);
 
        struct HashTab *htab;
        int i;
 
-       htab = hashtab_create(cf_size, mycmp, USUAL_ALLOC);
+       htab = hashtab_create(cf_size, mycmp, NULL);
 
        for (i = 0; i < cf_cnt; i++) {
                int n = i + cf_ofs;
 
        struct Heap *heap;
        int i;
 
-       heap = heap_create(heap_is_better, my_save_pos, USUAL_ALLOC);
+       heap = heap_create(heap_is_better, my_save_pos, NULL);
 
        str_check(my_remove(heap, 0), "NEXIST");
        str_check(my_insert(heap, 0), "OK");
 
        struct MBuf buf;
        const char *s;
 
-       d = mdict_new(USUAL_ALLOC);
+       d = mdict_new(NULL);
        str_check(xget(d, "key"), "NULL");
        int_check(mdict_put(d, "key", "val"), 1);
        int_check(mdict_put(d, "key2", "foo"), 1);
 
        mdict_free(d);
 
-       d = mdict_new(USUAL_ALLOC);
+       d = mdict_new(NULL);
        s = "key=val&key2=&key3";
        int_check(mdict_urldecode(d, s, strlen(s)), 1);
        str_check(xget(d, "key"), "val");
 
 
 static char *aparse(const char *src)
 {
-       struct StrList *sl = pg_parse_array(src, USUAL_ALLOC);
+       struct StrList *sl = pg_parse_array(src, NULL);
        static char buf[1024];
        char *dst = buf;
        const char *s;
 
 {
        struct StrList *sl = NULL;
        const char *s;
-       sl = strlist_new(USUAL_ALLOC);
+       sl = strlist_new(NULL);
        str_check(lshow(sl), "");
        strlist_append(sl, "1");
        str_check(lshow(sl), "1");
 static const char *wlist(const char *s)
 {
        const char *res = "FAIL";
-       struct StrList *sl = strlist_new(USUAL_ALLOC);
+       struct StrList *sl = strlist_new(NULL);
        bool ok = parse_word_list(s, sl_add, sl);
        if (ok) {
                if (strlist_empty(sl))
 
        struct StrPool *pool;
        struct PStr *s;
 
-       pool = strpool_create(USUAL_ALLOC);
+       pool = strpool_create(NULL);
        tt_assert(pool);
        strpool_free(pool);
 
-       pool = strpool_create(USUAL_ALLOC);
+       pool = strpool_create(NULL);
        tt_assert(pool);
        int_check(strpool_total(pool), 0);
 
        strpool_free(pool);
 
        /* free strc with strings */
-       pool = strpool_create(USUAL_ALLOC);
+       pool = strpool_create(NULL);
        tt_assert(pool);
        s = strpool_get(pool, "foo", -1);
        s = strpool_get(pool, "bar", 3);
 
                return NULL;
 
        /* initialize timeout and fd areas */
-       base->timeout_heap = heap_create(ev_is_better, ev_save_pos, USUAL_ALLOC);
+       base->timeout_heap = heap_create(ev_is_better, ev_save_pos, NULL);
        if (!base->timeout_heap) {
                free(base);
                return NULL;
 
        unsigned nitem, nlink;
        struct HashTab *h, *h2;
        
-       h = hashtab_create(1024, NULL, USUAL_ALLOC);
+       h = hashtab_create(1024, NULL, NULL);
        hashtab_lookup(h, 123, true, NULL);
        hashtab_stats(h, &nitem, &nlink);
        h2 = hashtab_copy(h, 2048);