static int dictionary_release(crf_dictionary_t* dic) { int count = crf_interlocked_decrement(&dic->nref); if (count == 0) { quark_t *qrk = (quark_t*)dic->internal; quark_delete(qrk); free(dic); } return count; }
int main(int argc, char *argv[]) { quark_t *qrk = quark_new(); int qid = 0; qid = quark_get(qrk, "zero"); qid = quark_get(qrk, "one"); qid = quark_get(qrk, "zero"); qid = quark_to_id(qrk, "three"); qid = quark_get(qrk, "two"); qid = quark_get(qrk, "three"); qid = quark_to_id(qrk, "three"); qid = quark_get(qrk, "zero"); qid = quark_get(qrk, "one"); printf("%s\n", quark_to_string(qrk, 0)); printf("%s\n", quark_to_string(qrk, 1)); printf("%s\n", quark_to_string(qrk, 2)); printf("%s\n", quark_to_string(qrk, 3)); quark_delete(qrk); return 0; }