Blender  V3.3
BLI_memarena.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2001-2002 NaN Holding BV. All rights reserved. */
3 
8 #pragma once
9 
10 #include "BLI_compiler_attrs.h"
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
20 #define BLI_MEMARENA_STD_BUFSIZE MEM_SIZE_OPTIMAL(1 << 14)
21 
22 struct MemArena;
23 typedef struct MemArena MemArena;
24 
25 struct MemArena *BLI_memarena_new(size_t bufsize,
28 void BLI_memarena_free(struct MemArena *ma) ATTR_NONNULL(1);
31 void BLI_memarena_use_align(struct MemArena *ma, size_t align) ATTR_NONNULL(1);
36 
47 void BLI_memarena_merge(MemArena *ma_dst, MemArena *ma_src) ATTR_NONNULL(1, 2);
48 
54 
55 #ifdef __cplusplus
56 }
57 #endif
#define ATTR_WARN_UNUSED_RESULT
#define ATTR_MALLOC
#define ATTR_ALLOC_SIZE(...)
#define ATTR_RETURNS_NONNULL
#define ATTR_NONNULL(...)
void BLI_memarena_free(struct MemArena *ma) ATTR_NONNULL(1)
Definition: BLI_memarena.c:94
void BLI_memarena_use_malloc(struct MemArena *ma) ATTR_NONNULL(1)
Definition: BLI_memarena.c:81
struct MemArena * BLI_memarena_new(size_t bufsize, const char *name) ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL ATTR_NONNULL(2) ATTR_MALLOC
Definition: BLI_memarena.c:64
void BLI_memarena_merge(MemArena *ma_dst, MemArena *ma_src) ATTR_NONNULL(1
void BLI_memarena_use_calloc(struct MemArena *ma) ATTR_NONNULL(1)
Definition: BLI_memarena.c:76
void BLI_memarena_use_align(struct MemArena *ma, size_t align) ATTR_NONNULL(1)
Definition: BLI_memarena.c:86
void * BLI_memarena_alloc(struct MemArena *ma, size_t size) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC ATTR_ALLOC_SIZE(2)
Definition: BLI_memarena.c:116
void void BLI_memarena_clear(MemArena *ma) ATTR_NONNULL(1)
Definition: BLI_memarena.c:208
void * BLI_memarena_calloc(struct MemArena *ma, size_t size) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC ATTR_ALLOC_SIZE(2)
Definition: BLI_memarena.c:153
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition: btDbvt.cpp:52
const char * name
Definition: BLI_memarena.c:42
size_t align
Definition: BLI_memarena.c:46
size_t bufsize
Definition: BLI_memarena.c:45