X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=test%2Ftest_shared_ptr.c;h=464a534ea9f1e0399ce657fbedc4988b801c6719;hp=cff3ee0b52001222102959579381806d0d069263;hb=249f8a3fb06e57a672b21af5b00f66bdfde8633a;hpb=24a138f8cd6c4c2c47d5c8d9b8efd7b19173b600 diff --git a/test/test_shared_ptr.c b/test/test_shared_ptr.c index cff3ee0..464a534 100644 --- a/test/test_shared_ptr.c +++ b/test/test_shared_ptr.c @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2010 Index Data + * Copyright (C) 1995-2013 Index Data * See the file LICENSE for details. */ @@ -16,46 +16,10 @@ #include #include -#include +#include #include #include -#define YAZ_SHPTR_TYPE(type) \ - struct type##_shptr \ - { \ - type ptr; \ - int ref; \ - YAZ_MUTEX mutex; \ - }; \ - typedef struct type##_shptr *type##_shptr_t; - -#define YAZ_SHPTR_INIT(p,n) { \ - p = xmalloc(sizeof(*p)); \ - p->ptr = n; \ - p->ref = 1; \ - p->mutex = 0; \ - yaz_mutex_create(&p->mutex); \ - } - -#define YAZ_SHPTR_INC(p) { \ - yaz_mutex_enter(p->mutex); \ - p->ref++; \ - yaz_mutex_leave(p->mutex); \ - } - -#define YAZ_SHPTR_DEC(p, destroy) { \ - yaz_mutex_enter(p->mutex); \ - if (--p->ref == 0) { \ - yaz_mutex_leave(p->mutex); \ - destroy(p->ptr); \ - yaz_mutex_destroy(&p->mutex); \ - xfree(p); \ - p = 0; \ - } else { \ - yaz_mutex_leave(p->mutex); \ - } \ - } - YAZ_SHPTR_TYPE(WRBUF) static void test(void) @@ -63,7 +27,7 @@ static void test(void) WRBUF w = wrbuf_alloc(); WRBUF_shptr_t t = 0; - + YAZ_SHPTR_INIT(t, w); YAZ_CHECK(t);