Go to the documentation of this file.
63 #include "../internal.h"
78 if (
ret->data == NULL) {
104 if (sk == NULL || sk->
num == 0) {
113 if (!sk ||
i >= sk->
num) {
120 if (!sk ||
i >= sk->
num) {
140 for (
size_t i = 0;
i < sk->
num;
i++) {
141 if (sk->
data[
i] != NULL) {
142 call_free_func(free_func, sk->
data[
i]);
167 size_t alloc_size = new_alloc *
sizeof(
void *);
171 if (new_alloc < sk->num_alloc || alloc_size /
sizeof(
void *) != new_alloc) {
173 alloc_size = new_alloc *
sizeof(
void *);
177 if (new_alloc < sk->num_alloc || alloc_size /
sizeof(
void *) != new_alloc) {
190 if (where >= sk->
num) {
194 sizeof(
void *) * (sk->
num - where));
207 if (!sk || where >= sk->
num) {
213 if (where != sk->
num - 1) {
215 sizeof(
void *) * (sk->
num - where - 1));
227 for (
size_t i = 0;
i < sk->
num;
i++) {
243 if (sk->
comp == NULL) {
245 for (
size_t i = 0;
i < sk->
num;
i++) {
261 for (
size_t i = 0;
i < sk->
num;
i++) {
263 if (call_cmp_func(sk->
comp, &
p, &
elem) == 0) {
277 size_t lo = 0, hi = sk->
num;
280 size_t mid = lo + (hi - lo - 1) / 2;
281 assert(lo <= mid && mid < hi);
292 if (out_index != NULL) {
299 assert(mid + 1 < hi);
342 if (
ret->data == NULL) {
359 if (sk == NULL || sk->
comp == NULL || sk->
sorted) {
373 int (*comp_func)(
const void *,
const void *) =
374 (
int (*)(
const void *,
const void *))(sk->
comp);
390 if (sk->
comp != comp) {
408 for (
size_t i = 0;
i <
ret->num;
i++) {
409 if (
ret->data[
i] == NULL) {
412 ret->data[
i] = call_copy_func(copy_func,
ret->data[
i]);
413 if (
ret->data[
i] == NULL) {
414 for (
size_t j = 0; j <
i; j++) {
415 if (
ret->data[j] != NULL) {
416 call_free_func(free_func,
ret->data[j]);
int sk_is_sorted(const _STACK *sk)
static const size_t kMinSize
void * sk_set(_STACK *sk, size_t i, void *value)
int(* stack_cmp_func)(const void **a, const void **b)
void * sk_delete(_STACK *sk, size_t where)
_STACK * sk_dup(const _STACK *sk)
void * sk_pop(_STACK *sk)
stack_cmp_func sk_set_cmp_func(_STACK *sk, stack_cmp_func comp)
static void * OPENSSL_memset(void *dst, int c, size_t n)
void * sk_shift(_STACK *sk)
int sk_find(const _STACK *sk, size_t *out_index, const void *p, int(*call_cmp_func)(stack_cmp_func, const void **, const void **))
void * sk_delete_ptr(_STACK *sk, const void *p)
void sk_pop_free(_STACK *sk, stack_free_func free_func)
void * sk_value(const _STACK *sk, size_t i)
static void * OPENSSL_memcpy(void *dst, const void *src, size_t n)
_STACK * sk_new_null(void)
size_t sk_insert(_STACK *sk, void *p, size_t where)
void qsort(void *a, size_t n, size_t es, int(*cmp)(const void *, const void *))
void(* stack_free_func)(void *ptr)
_STACK * sk_new(stack_cmp_func comp)
void *(* stack_copy_func)(void *ptr)
static void call_free_func_legacy(stack_free_func func, void *ptr)
UniquePtr< SSL_SESSION > ret
size_t sk_num(const _STACK *sk)
void sk_pop_free_ex(_STACK *sk, void(*call_free_func)(stack_free_func, void *), stack_free_func free_func)
static void * OPENSSL_memmove(void *dst, const void *src, size_t n)
size_t sk_push(_STACK *sk, void *p)
_STACK * sk_deep_copy(const _STACK *sk, void *(*call_copy_func)(stack_copy_func, void *), stack_copy_func copy_func, void(*call_free_func)(stack_free_func, void *), stack_free_func free_func)
grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:01:21