ae2f_docs
Loading...
Searching...
No Matches
ctx.auto.h
1#undef __ae2f_MACRO_GENERATED
2#define __ae2f_MACRO_GENERATED 1
3#ifndef aclspv_pass_ctx_auto_h
4#define aclspv_pass_ctx_auto_h
5
6#include <ae2f/Macro.h>
7#undef __ae2f_MACRO_GENERATED
8#define __ae2f_MACRO_GENERATED 1
9#include <stddef.h>
10#undef __ae2f_MACRO_GENERATED
11#define __ae2f_MACRO_GENERATED 1
12#include <ae2f/Keys.h>
13#undef __ae2f_MACRO_GENERATED
14#define __ae2f_MACRO_GENERATED 1
15
17
18typedef struct {
19 void* ae2f_restrict m_p;
20 size_t m_sz;
21} aclspv_vec;
22
23void aclspv_init_vec(aclspv_vec);
24void aclspv_stop_vec(aclspv_vec);
25void aclspv_grow_vec(aclspv_vec, const size_t);
26void aclspv_grow_vec_with_copy(aclspv_vec, const size_t);
27
28void f_free(void* ae2f_restrict, size_t);
29ae2f_retnew void* f_malloc(size_t);
30void* f_memcpy(void*, const void*, size_t);
31
32#endif
33
34
35#define _aclspv_init_vec(
36 /** tparam */
37
38
39 /** param */
40 /* , aclspv_vec */ i_vec \
41){
42 (i_vec).m_p = ae2f_NIL;
43 (i_vec).m_sz = 0ul; \
44}
45
46#define _aclspv_stop_vec(
47 /** tparam */
48 f_free,
49
50 /** param */
51 /* , aclspv_vec */ s_vec \
52){
53 f_free((s_vec).m_p, (s_vec).m_sz); \
54}
55
56#define _aclspv_grow_vec(
57 /** tparam */
58 f_malloc,f_free,
59
60 /** param */
61 /* , aclspv_vec */ rc_vec,
62 /* const size_t */ c_new_sz \
63){
64 if((c_new_sz) > (rc_vec).m_sz) {
65 f_free((rc_vec).m_p, (c_new_sz));
66 if(((rc_vec).m_p = f_malloc(c_new_sz))) {
67 (rc_vec).m_sz = (c_new_sz);
68 } else {
69 (rc_vec).m_sz = 0ul;
70 }
71 }
72 }
73
74#define _aclspv_grow_vec_with_copy(
75 /** tparam */
76 f_malloc,f_free,f_memcpy,L_new,
77
78 /** param */
79 /* , aclspv_vec */ rc_vec,
80 /* const size_t */ c_new_sz \
81){
82 if((c_new_sz) > (rc_vec).m_sz) {
83 void* ae2f_restrict
84 L_new = f_malloc(c_new_sz);
85
86 if(L_new) {
87 f_memcpy(L_new, (rc_vec).m_p, (rc_vec).m_sz);
88 f_free((rc_vec).m_p, (rc_vec).m_sz);
89 (rc_vec).m_p = L_new;
90 (rc_vec).m_sz = (c_new_sz);
91 } else {
92 f_free((rc_vec).m_p, (rc_vec).m_sz);
93 (rc_vec).m_p = ae2f_NIL;
94 (rc_vec).m_sz = 0ul;
95 }
96 }
97 }
98
99#endif
100
101#undef __ae2f_MACRO_GENERATED
102
103#define __ae2f_MACRO_GENERATED 0
#define __ae2f_MACRO_GENERATED
Definition Macro.h:4
#define ae2f_NIL
Definition Nil.h:13
#define ae2f_restrict
Keyword as restrict on C99.
Definition cc.h:81