4 #define PUSH_LT(lt, resource, resource_destroy) \
5 lt_push(lt, (void*)resource, (lt_destroy_t)resource_destroy)
7 #define RESET_LT(lt, old_resource, new_resource) \
8 lt_reset(lt, (void*)old_resource, (void*)new_resource)
10 #define RELEASE_LT(lt, resource) \
11 lt_release(lt, (void*) resource)
13 #define RETURN_LT(lt, result) \
19 #define RETURN_LT0(lt) \
25 typedef struct lt_t lt_t;
26 typedef void (*lt_destroy_t)(void*);
28 lt_t *create_lt(void);
29 void destroy_lt(lt_t *lt);
31 void *lt_push(lt_t *lt, void *resource, lt_destroy_t resource_destroy);
32 void *lt_reset(lt_t *lt, void *old_resource, void *new_resource);
33 void *lt_release(lt_t *lt, void *resource);