Blender  V3.3
BLI_stack.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #pragma once
4 
9 #include "BLI_compiler_attrs.h"
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
15 typedef struct BLI_Stack BLI_Stack;
16 
18  const char *description,
23 BLI_Stack *BLI_stack_new(size_t elem_size, const char *description) ATTR_WARN_UNUSED_RESULT
24  ATTR_NONNULL();
25 
30 
46 void BLI_stack_push(BLI_Stack *stack, const void *src) ATTR_NONNULL();
47 
57 void BLI_stack_pop_n(BLI_Stack *stack, void *dst, unsigned int n) ATTR_NONNULL();
63 void BLI_stack_pop_n_reverse(BLI_Stack *stack, void *dst, unsigned int n) ATTR_NONNULL();
70 void BLI_stack_pop(BLI_Stack *stack, void *dst) ATTR_NONNULL();
71 
81 
83 
88 
89 #ifdef __cplusplus
90 }
91 #endif
#define ATTR_WARN_UNUSED_RESULT
#define ATTR_NONNULL(...)
void BLI_stack_pop_n_reverse(BLI_Stack *stack, void *dst, unsigned int n) ATTR_NONNULL()
Definition: stack.c:154
void BLI_stack_pop(BLI_Stack *stack, void *dst) ATTR_NONNULL()
Definition: stack.c:135
void * BLI_stack_push_r(BLI_Stack *stack) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
Definition: stack.c:101
void * BLI_stack_peek(BLI_Stack *stack) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
Definition: stack.c:166
void BLI_stack_pop_n(BLI_Stack *stack, void *dst, unsigned int n) ATTR_NONNULL()
Definition: stack.c:144
size_t BLI_stack_count(const BLI_Stack *stack) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
Definition: stack.c:225
void BLI_stack_push(BLI_Stack *stack, const void *src) ATTR_NONNULL()
Definition: stack.c:129
bool BLI_stack_is_empty(const BLI_Stack *stack) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
Definition: stack.c:247
BLI_Stack * BLI_stack_new(size_t elem_size, const char *description) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
Definition: stack.c:80
void BLI_stack_clear(BLI_Stack *stack) ATTR_NONNULL()
Definition: stack.c:193
void BLI_stack_free(BLI_Stack *stack) ATTR_NONNULL()
Definition: stack.c:94
BLI_Stack * BLI_stack_new_ex(size_t elem_size, const char *description, size_t chunk_size) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
Definition: stack.c:66
void BLI_stack_discard(BLI_Stack *stack) ATTR_NONNULL()
Definition: stack.c:173
SyclQueue void void * src
static const int chunk_size
size_t elem_size
Definition: stack.c:35