]>
code.delx.au - pulseaudio/blob - src/memblock.c
7 struct memblock
*memblock_new(size_t length
) {
8 struct memblock
*b
= malloc(sizeof(struct memblock
)+length
);
9 b
->type
= MEMBLOCK_APPENDED
;
16 struct memblock
*memblock_new_fixed(void *d
, size_t length
) {
17 struct memblock
*b
= malloc(sizeof(struct memblock
));
18 b
->type
= MEMBLOCK_FIXED
;
25 struct memblock
*memblock_new_dynamic(void *d
, size_t length
) {
26 struct memblock
*b
= malloc(sizeof(struct memblock
));
27 b
->type
= MEMBLOCK_DYNAMIC
;
34 struct memblock
* memblock_ref(struct memblock
*b
) {
35 assert(b
&& b
->ref
>= 1);
40 void memblock_unref(struct memblock
*b
) {
41 assert(b
&& b
->ref
>= 1);
45 if (b
->type
== MEMBLOCK_DYNAMIC
)
51 void memblock_unref_fixed(struct memblock
*b
) {
54 assert(b
&& b
->ref
>= 1);
61 d
= malloc(b
->length
);
63 memcpy(d
, b
->data
, b
->length
);
65 b
->type
= MEMBLOCK_DYNAMIC
;