| 175 | } |
| 176 | |
| 177 | ACL_ARGV *acl_argv_alloc2(int len, ACL_DBUF_POOL *dbuf) { |
| 178 | ACL_ARGV *argvp; |
| 179 | int sane_len; |
| 180 | |
| 181 | /* Make sure that always argvp->argc < argvp->len. */ |
| 182 | |
| 183 | if (dbuf) { |
| 184 | argvp = (ACL_ARGV *) acl_dbuf_pool_alloc(dbuf, sizeof(*argvp)); |
| 185 | argvp->dbuf = dbuf; |
| 186 | } else { |
| 187 | argvp = (ACL_ARGV *) acl_mymalloc(sizeof(*argvp)); |
| 188 | argvp->dbuf = NULL; |
| 189 | } |
| 190 | argvp->len = 0; |
| 191 | sane_len = (len < 2 ? 2 : len); |
| 192 | if (argvp->dbuf) { |
| 193 | argvp->argv = (char **) acl_dbuf_pool_alloc(argvp->dbuf, |
| 194 | (sane_len + 1) * sizeof(char *)); |
| 195 | } else { |
| 196 | argvp->argv = (char **) |
| 197 | acl_mymalloc((sane_len + 1) * sizeof(char *)); |
| 198 | } |
| 199 | argvp->len = sane_len; |
| 200 | argvp->argc = 0; |
| 201 | argvp->argv[0] = 0; |
| 202 | |
| 203 | argvp->push_back = argv_push_back; |
| 204 | argvp->push_front = argv_push_front; |
| 205 | argvp->pop_back = argv_pop_back; |
| 206 | argvp->pop_front = argv_pop_front; |
| 207 | |
| 208 | /* set the iterator callback */ |
| 209 | argvp->iter_head = acl_argv_iter_head; |
| 210 | argvp->iter_next = acl_argv_iter_next; |
| 211 | argvp->iter_tail = acl_argv_iter_tail; |
| 212 | argvp->iter_prev = acl_argv_iter_prev; |
| 213 | |
| 214 | return argvp; |
| 215 | } |
| 216 | |
| 217 | void acl_argv_iter_init(ACL_ARGV *argvp) { |
| 218 | /* set the iterator callback */ |
no test coverage detected
searching dependent graphs…