remove type param from SCOPED macro
This commit is contained in:
1 parent
ed6d2d1cd5
commit
e298e1950b
5 files changed
+12
-5
No files matched your search
@@ -51,5 +51,5 @@ int tlsl_eventloop_add_fd(struct tlsl_eventloop *el, struct tlsl_event *e, int f
|
|||||||
|
|
||||||
DEF_SCOPED_TYPE(eventloop_stack, struct tlsl_eventloop, (struct tlsl_eventloop) { .valid = false }, tlsl_eventloop_cleanup)
|
DEF_SCOPED_TYPE(eventloop_stack, struct tlsl_eventloop, (struct tlsl_eventloop) { .valid = false }, tlsl_eventloop_cleanup)
|
||||||
|
|
||||||
#define EVENTLOOP_STACK_SCOPED(VAL) SCOPED(eventloop_stack, struct tlsl_eventloop, VAL)
|
#define EVENTLOOP_STACK_SCOPED(VAL) SCOPED(eventloop_stack, VAL)
|
||||||
#define EVENTLOOP_STACK_CLOSE(EL) _tlsl_scoped_eventloop_stack_cleanup(EL)
|
#define EVENTLOOP_STACK_CLOSE(EL) _tlsl_scoped_eventloop_stack_cleanup(EL)
|
||||||
+1
-1
@@ -16,7 +16,7 @@ static inline void _tlsl_close_if_nonnegative(int *fd) {
|
|||||||
|
|
||||||
DEF_SCOPED_TYPE(fd, int, -1, _tlsl_close_if_nonnegative)
|
DEF_SCOPED_TYPE(fd, int, -1, _tlsl_close_if_nonnegative)
|
||||||
|
|
||||||
#define FD_SCOPED(VAL) SCOPED(fd, int, VAL)
|
#define FD_SCOPED(VAL) SCOPED(fd, VAL)
|
||||||
#define FD_CLOSE(FD) _tlsl_scoped_fd_cleanup(FD)
|
#define FD_CLOSE(FD) _tlsl_scoped_fd_cleanup(FD)
|
||||||
#define FD_RELEASE(FD) _tlsl_scoped_fd_release(FD)
|
#define FD_RELEASE(FD) _tlsl_scoped_fd_release(FD)
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,6 @@ static inline void _tlsl_mem_free(void **p) {
|
|||||||
|
|
||||||
DEF_SCOPED_TYPE(mem, void *, NULL, _tlsl_mem_free)
|
DEF_SCOPED_TYPE(mem, void *, NULL, _tlsl_mem_free)
|
||||||
|
|
||||||
#define MEM_SCOPED(TYPE, VAL) SCOPED(mem, TYPE *, VAL)
|
#define MEM_SCOPED(TYPE, VAL) SCOPED_T(mem, TYPE *, VAL)
|
||||||
#define MEM_FREE(TYPE, MEM) ({ TLSL_CHECK_TYPE(TYPE **, MEM), (TYPE *)_scoped_mem_cleanup((void **)(MEM)); })
|
#define MEM_FREE(TYPE, MEM) ({ TLSL_CHECK_TYPE(TYPE **, MEM), (TYPE *)_scoped_mem_cleanup((void **)(MEM)); })
|
||||||
#define MEM_RELEASE(TYPE, MEM) ({ TLSL_CHECK_TYPE(TYPE **, MEM), (TYPE *)_scoped_mem_release((void **)(MEM)); })
|
#define MEM_RELEASE(TYPE, MEM) ({ TLSL_CHECK_TYPE(TYPE **, MEM), (TYPE *)_scoped_mem_release((void **)(MEM)); })
|
||||||
@@ -5,6 +5,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define DEF_SCOPED_TYPE(NAME, TYPE, UNOCCUPIED, CLEANUP_FN) \
|
#define DEF_SCOPED_TYPE(NAME, TYPE, UNOCCUPIED, CLEANUP_FN) \
|
||||||
|
typedef TYPE _tlsl_scoped_##NAME##_t; \
|
||||||
static inline TYPE _tlsl_scoped_##NAME##_unoccupied(void) { \
|
static inline TYPE _tlsl_scoped_##NAME##_unoccupied(void) { \
|
||||||
return (UNOCCUPIED); \
|
return (UNOCCUPIED); \
|
||||||
} \
|
} \
|
||||||
@@ -21,6 +22,8 @@
|
|||||||
return _released; \
|
return _released; \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define SCOPED(NAME, TYPE, VAL) \
|
#define SCOPED_T(NAME, TYPE, VAL) \
|
||||||
TYPE VAL __attribute__((cleanup(_tlsl_scoped_##NAME##_cleanup_raw))) \
|
TYPE VAL __attribute__((cleanup(_tlsl_scoped_##NAME##_cleanup_raw))) \
|
||||||
= _tlsl_scoped_##NAME##_unoccupied()
|
= _tlsl_scoped_##NAME##_unoccupied()
|
||||||
|
|
||||||
|
#define SCOPED(NAME, VAL) SCOPED_T(NAME, _tlsl_scoped_##NAME##_t, VAL)
|
||||||
@@ -8,10 +8,11 @@
|
|||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "scoped.h"
|
||||||
|
|
||||||
#define SVIEW_LIT(S) ((void)(S "LITERAL_CHECK"), (str_view_t) { S, sizeof(S) - 1 })
|
#define SVIEW_LIT(S) ((void)(S "LITERAL_CHECK"), (str_view_t) { S, sizeof(S) - 1 })
|
||||||
#define SVIEW_NULL ((str_view_t) { NULL, 0 })
|
#define SVIEW_NULL ((str_view_t) { NULL, 0 })
|
||||||
#define SBUF_NULL ((str_buf_t) { NULL, 0 })
|
#define SBUF_NULL ((str_buf_t) { NULL, 0 })
|
||||||
#define SBUF_SCOPED(NAME) str_buf_t NAME __attribute__((cleanup(sb_free))) = SB_NULL
|
|
||||||
|
|
||||||
#define SVIEW_PRI "%.*s"
|
#define SVIEW_PRI "%.*s"
|
||||||
#define SVIEW_PRI_ARGS(S) (int)((S).len), (S).ptr
|
#define SVIEW_PRI_ARGS(S) (int)((S).len), (S).ptr
|
||||||
@@ -90,3 +91,6 @@ static inline void sbuf_free(str_buf_t *buf) {
|
|||||||
buf->ptr = NULL;
|
buf->ptr = NULL;
|
||||||
buf->len = 0;
|
buf->len = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DEF_SCOPED_TYPE(str_buf, str_buf_t, SBUF_NULL, sbuf_free)
|
||||||
|
#define SBUF_SCOPED(VAL) SCOPED(str_buf, VAL)
|
||||||
Reference in new issue
Block a user