mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-14 06:59:57 -05:00
spa/buffer: rename SPA_MEMBER to SPA_PTROFF
SPA_MEMBER is misleading, all we're doing here is pointer+offset and a type-casting the result. Rename to SPA_PTROFF which is more expressive (and has the same number of characters so we don't need to re-indent).
This commit is contained in:
parent
e598d0a422
commit
2405f0942b
92 changed files with 248 additions and 227 deletions
|
|
@ -95,7 +95,7 @@ spa_pod_builder_deref(struct spa_pod_builder *builder, uint32_t offset)
|
|||
{
|
||||
uint32_t size = builder->size;
|
||||
if (offset + 8 <= size) {
|
||||
struct spa_pod *pod = SPA_MEMBER(builder->data, offset, struct spa_pod);
|
||||
struct spa_pod *pod = SPA_PTROFF(builder->data, offset, struct spa_pod);
|
||||
if (offset + SPA_POD_SIZE(pod) <= size)
|
||||
return pod;
|
||||
}
|
||||
|
|
@ -106,7 +106,7 @@ static inline struct spa_pod *
|
|||
spa_pod_builder_frame(struct spa_pod_builder *builder, struct spa_pod_frame *frame)
|
||||
{
|
||||
if (frame->offset + SPA_POD_SIZE(&frame->pod) <= builder->size)
|
||||
return SPA_MEMBER(builder->data, frame->offset, struct spa_pod);
|
||||
return SPA_PTROFF(builder->data, frame->offset, struct spa_pod);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
@ -138,7 +138,7 @@ static inline int spa_pod_builder_raw(struct spa_pod_builder *builder, const voi
|
|||
overflow, 0, offset + size);
|
||||
}
|
||||
if (res == 0 && data)
|
||||
memcpy(SPA_MEMBER(builder->data, offset, void), data, size);
|
||||
memcpy(SPA_PTROFF(builder->data, offset, void), data, size);
|
||||
|
||||
builder->state.offset += size;
|
||||
|
||||
|
|
|
|||
|
|
@ -50,12 +50,12 @@ static inline int spa_pod_choice_fix_default(struct spa_pod_choice *choice)
|
|||
case SPA_CHOICE_Range:
|
||||
case SPA_CHOICE_Step:
|
||||
if (nvals > 1) {
|
||||
alt = SPA_MEMBER(alt, size, void);
|
||||
alt = SPA_PTROFF(alt, size, void);
|
||||
if (spa_pod_compare_value(type, val, alt, size) < 0)
|
||||
memcpy(val, alt, size);
|
||||
}
|
||||
if (nvals > 2) {
|
||||
alt = SPA_MEMBER(alt, size, void);
|
||||
alt = SPA_PTROFF(alt, size, void);
|
||||
if (spa_pod_compare_value(type, val, alt, size) > 0)
|
||||
memcpy(val, alt, size);
|
||||
}
|
||||
|
|
@ -66,7 +66,7 @@ static inline int spa_pod_choice_fix_default(struct spa_pod_choice *choice)
|
|||
void *best = NULL;
|
||||
|
||||
for (i = 1; i < nvals; i++) {
|
||||
alt = SPA_MEMBER(alt, size, void);
|
||||
alt = SPA_PTROFF(alt, size, void);
|
||||
if (spa_pod_compare_value(type, val, alt, size) == 0) {
|
||||
best = alt;
|
||||
break;
|
||||
|
|
@ -139,14 +139,14 @@ spa_pod_filter_prop(struct spa_pod_builder *b,
|
|||
if (p1c == SPA_CHOICE_None || p1c == SPA_CHOICE_Flags) {
|
||||
nalt1 = 1;
|
||||
} else {
|
||||
alt1 = SPA_MEMBER(alt1, size, void);
|
||||
alt1 = SPA_PTROFF(alt1, size, void);
|
||||
nalt1--;
|
||||
}
|
||||
|
||||
if (p2c == SPA_CHOICE_None || p2c == SPA_CHOICE_Flags) {
|
||||
nalt2 = 1;
|
||||
} else {
|
||||
alt2 = SPA_MEMBER(alt2, size, void);
|
||||
alt2 = SPA_PTROFF(alt2, size, void);
|
||||
nalt2--;
|
||||
}
|
||||
|
||||
|
|
@ -164,8 +164,8 @@ spa_pod_filter_prop(struct spa_pod_builder *b,
|
|||
(p1c == SPA_CHOICE_Enum && p2c == SPA_CHOICE_Enum)) {
|
||||
int n_copied = 0;
|
||||
/* copy all equal values but don't copy the default value again */
|
||||
for (j = 0, a1 = alt1; j < nalt1; j++, a1 = SPA_MEMBER(a1, size, void)) {
|
||||
for (k = 0, a2 = alt2; k < nalt2; k++, a2 = SPA_MEMBER(a2,size,void)) {
|
||||
for (j = 0, a1 = alt1; j < nalt1; j++, a1 = SPA_PTROFF(a1, size, void)) {
|
||||
for (k = 0, a2 = alt2; k < nalt2; k++, a2 = SPA_PTROFF(a2,size,void)) {
|
||||
if (spa_pod_compare_value(type, a1, a2, size) == 0) {
|
||||
if (p1c == SPA_CHOICE_Enum || j > 0)
|
||||
spa_pod_builder_raw(b, a1, size);
|
||||
|
|
@ -182,10 +182,10 @@ spa_pod_filter_prop(struct spa_pod_builder *b,
|
|||
(p1c == SPA_CHOICE_Enum && p2c == SPA_CHOICE_Range)) {
|
||||
int n_copied = 0;
|
||||
/* copy all values inside the range */
|
||||
for (j = 0, a1 = alt1, a2 = alt2; j < nalt1; j++, a1 = SPA_MEMBER(a1,size,void)) {
|
||||
for (j = 0, a1 = alt1, a2 = alt2; j < nalt1; j++, a1 = SPA_PTROFF(a1,size,void)) {
|
||||
if (spa_pod_compare_value(type, a1, a2, size) < 0)
|
||||
continue;
|
||||
if (spa_pod_compare_value(type, a1, SPA_MEMBER(a2,size,void), size) > 0)
|
||||
if (spa_pod_compare_value(type, a1, SPA_PTROFF(a2,size,void), size) > 0)
|
||||
continue;
|
||||
spa_pod_builder_raw(b, a1, size);
|
||||
n_copied++;
|
||||
|
|
@ -204,10 +204,10 @@ spa_pod_filter_prop(struct spa_pod_builder *b,
|
|||
(p1c == SPA_CHOICE_Range && p2c == SPA_CHOICE_Enum)) {
|
||||
int n_copied = 0;
|
||||
/* copy all values inside the range */
|
||||
for (k = 0, a1 = alt1, a2 = alt2; k < nalt2; k++, a2 = SPA_MEMBER(a2,size,void)) {
|
||||
for (k = 0, a1 = alt1, a2 = alt2; k < nalt2; k++, a2 = SPA_PTROFF(a2,size,void)) {
|
||||
if (spa_pod_compare_value(type, a2, a1, size) < 0)
|
||||
continue;
|
||||
if (spa_pod_compare_value(type, a2, SPA_MEMBER(a1,size,void), size) > 0)
|
||||
if (spa_pod_compare_value(type, a2, SPA_PTROFF(a1,size,void), size) > 0)
|
||||
continue;
|
||||
spa_pod_builder_raw(b, a2, size);
|
||||
n_copied++;
|
||||
|
|
@ -226,8 +226,8 @@ spa_pod_filter_prop(struct spa_pod_builder *b,
|
|||
else
|
||||
spa_pod_builder_raw(b, alt1, size);
|
||||
|
||||
alt1 = SPA_MEMBER(alt1,size,void);
|
||||
alt2 = SPA_MEMBER(alt2,size,void);
|
||||
alt1 = SPA_PTROFF(alt1,size,void);
|
||||
alt2 = SPA_PTROFF(alt2,size,void);
|
||||
|
||||
if (spa_pod_compare_value(type, alt1, alt2, size) < 0)
|
||||
spa_pod_builder_raw(b, alt1, size);
|
||||
|
|
@ -331,9 +331,9 @@ static inline int spa_pod_filter_part(struct spa_pod_builder *b,
|
|||
filter_offset = sizeof(struct spa_pod_struct);
|
||||
spa_pod_builder_push_struct(b, &f);
|
||||
res = spa_pod_filter_part(b,
|
||||
SPA_MEMBER(pp,filter_offset,const struct spa_pod),
|
||||
SPA_PTROFF(pp,filter_offset,const struct spa_pod),
|
||||
SPA_POD_SIZE(pp) - filter_offset,
|
||||
SPA_MEMBER(pf,filter_offset,const struct spa_pod),
|
||||
SPA_PTROFF(pf,filter_offset,const struct spa_pod),
|
||||
SPA_POD_SIZE(pf) - filter_offset);
|
||||
spa_pod_builder_pop(b, &f);
|
||||
do_advance = true;
|
||||
|
|
|
|||
|
|
@ -43,61 +43,61 @@ struct spa_pod_frame {
|
|||
|
||||
static inline bool spa_pod_is_inside(const void *pod, uint32_t size, const void *iter)
|
||||
{
|
||||
return SPA_POD_BODY(iter) <= SPA_MEMBER(pod, size, void) &&
|
||||
SPA_MEMBER(iter, SPA_POD_SIZE(iter), void) <= SPA_MEMBER(pod, size, void);
|
||||
return SPA_POD_BODY(iter) <= SPA_PTROFF(pod, size, void) &&
|
||||
SPA_PTROFF(iter, SPA_POD_SIZE(iter), void) <= SPA_PTROFF(pod, size, void);
|
||||
}
|
||||
|
||||
static inline void *spa_pod_next(const void *iter)
|
||||
{
|
||||
return SPA_MEMBER(iter, SPA_ROUND_UP_N(SPA_POD_SIZE(iter), 8), void);
|
||||
return SPA_PTROFF(iter, SPA_ROUND_UP_N(SPA_POD_SIZE(iter), 8), void);
|
||||
}
|
||||
|
||||
static inline struct spa_pod_prop *spa_pod_prop_first(const struct spa_pod_object_body *body)
|
||||
{
|
||||
return SPA_MEMBER(body, sizeof(struct spa_pod_object_body), struct spa_pod_prop);
|
||||
return SPA_PTROFF(body, sizeof(struct spa_pod_object_body), struct spa_pod_prop);
|
||||
}
|
||||
|
||||
static inline bool spa_pod_prop_is_inside(const struct spa_pod_object_body *body,
|
||||
uint32_t size, const struct spa_pod_prop *iter)
|
||||
{
|
||||
return SPA_POD_CONTENTS(struct spa_pod_prop, iter) <= SPA_MEMBER(body, size, void) &&
|
||||
SPA_MEMBER(iter, SPA_POD_PROP_SIZE(iter), void) <= SPA_MEMBER(body, size, void);
|
||||
return SPA_POD_CONTENTS(struct spa_pod_prop, iter) <= SPA_PTROFF(body, size, void) &&
|
||||
SPA_PTROFF(iter, SPA_POD_PROP_SIZE(iter), void) <= SPA_PTROFF(body, size, void);
|
||||
}
|
||||
|
||||
static inline struct spa_pod_prop *spa_pod_prop_next(const struct spa_pod_prop *iter)
|
||||
{
|
||||
return SPA_MEMBER(iter, SPA_ROUND_UP_N(SPA_POD_PROP_SIZE(iter), 8), struct spa_pod_prop);
|
||||
return SPA_PTROFF(iter, SPA_ROUND_UP_N(SPA_POD_PROP_SIZE(iter), 8), struct spa_pod_prop);
|
||||
}
|
||||
|
||||
static inline struct spa_pod_control *spa_pod_control_first(const struct spa_pod_sequence_body *body)
|
||||
{
|
||||
return SPA_MEMBER(body, sizeof(struct spa_pod_sequence_body), struct spa_pod_control);
|
||||
return SPA_PTROFF(body, sizeof(struct spa_pod_sequence_body), struct spa_pod_control);
|
||||
}
|
||||
|
||||
static inline bool spa_pod_control_is_inside(const struct spa_pod_sequence_body *body,
|
||||
uint32_t size, const struct spa_pod_control *iter)
|
||||
{
|
||||
return SPA_POD_CONTENTS(struct spa_pod_control, iter) <= SPA_MEMBER(body, size, void) &&
|
||||
SPA_MEMBER(iter, SPA_POD_CONTROL_SIZE(iter), void) <= SPA_MEMBER(body, size, void);
|
||||
return SPA_POD_CONTENTS(struct spa_pod_control, iter) <= SPA_PTROFF(body, size, void) &&
|
||||
SPA_PTROFF(iter, SPA_POD_CONTROL_SIZE(iter), void) <= SPA_PTROFF(body, size, void);
|
||||
}
|
||||
|
||||
static inline struct spa_pod_control *spa_pod_control_next(const struct spa_pod_control *iter)
|
||||
{
|
||||
return SPA_MEMBER(iter, SPA_ROUND_UP_N(SPA_POD_CONTROL_SIZE(iter), 8), struct spa_pod_control);
|
||||
return SPA_PTROFF(iter, SPA_ROUND_UP_N(SPA_POD_CONTROL_SIZE(iter), 8), struct spa_pod_control);
|
||||
}
|
||||
|
||||
#define SPA_POD_ARRAY_BODY_FOREACH(body, _size, iter) \
|
||||
for ((iter) = (__typeof__(iter))SPA_MEMBER((body), sizeof(struct spa_pod_array_body), void); \
|
||||
(iter) < (__typeof__(iter))SPA_MEMBER((body), (_size), void); \
|
||||
(iter) = (__typeof__(iter))SPA_MEMBER((iter), (body)->child.size, void))
|
||||
for ((iter) = (__typeof__(iter))SPA_PTROFF((body), sizeof(struct spa_pod_array_body), void); \
|
||||
(iter) < (__typeof__(iter))SPA_PTROFF((body), (_size), void); \
|
||||
(iter) = (__typeof__(iter))SPA_PTROFF((iter), (body)->child.size, void))
|
||||
|
||||
#define SPA_POD_ARRAY_FOREACH(obj, iter) \
|
||||
SPA_POD_ARRAY_BODY_FOREACH(&(obj)->body, SPA_POD_BODY_SIZE(obj), iter)
|
||||
|
||||
#define SPA_POD_CHOICE_BODY_FOREACH(body, _size, iter) \
|
||||
for ((iter) = (__typeof__(iter))SPA_MEMBER((body), sizeof(struct spa_pod_choice_body), void); \
|
||||
(iter) < (__typeof__(iter))SPA_MEMBER((body), (_size), void); \
|
||||
(iter) = (__typeof__(iter))SPA_MEMBER((iter), (body)->child.size, void))
|
||||
for ((iter) = (__typeof__(iter))SPA_PTROFF((body), sizeof(struct spa_pod_choice_body), void); \
|
||||
(iter) < (__typeof__(iter))SPA_PTROFF((body), (_size), void); \
|
||||
(iter) = (__typeof__(iter))SPA_PTROFF((iter), (body)->child.size, void))
|
||||
|
||||
#define SPA_POD_CHOICE_FOREACH(obj, iter) \
|
||||
SPA_POD_CHOICE_BODY_FOREACH(&(obj)->body, SPA_POD_BODY_SIZE(obj), iter)
|
||||
|
|
@ -132,7 +132,7 @@ static inline void *spa_pod_from_data(void *data, size_t maxsize, off_t offset,
|
|||
void *pod;
|
||||
if (size < sizeof(struct spa_pod) || offset + size > maxsize)
|
||||
return NULL;
|
||||
pod = SPA_MEMBER(data, offset, void);
|
||||
pod = SPA_PTROFF(data, offset, void);
|
||||
if (SPA_POD_SIZE(pod) > size)
|
||||
return NULL;
|
||||
return pod;
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ static inline struct spa_pod *
|
|||
spa_pod_parser_deref(struct spa_pod_parser *parser, uint32_t offset, uint32_t size)
|
||||
{
|
||||
if (offset + 8 <= size) {
|
||||
struct spa_pod *pod = SPA_MEMBER(parser->data, offset, struct spa_pod);
|
||||
struct spa_pod *pod = SPA_PTROFF(parser->data, offset, struct spa_pod);
|
||||
if (offset + SPA_POD_SIZE(pod) <= size)
|
||||
return pod;
|
||||
}
|
||||
|
|
@ -87,7 +87,7 @@ spa_pod_parser_deref(struct spa_pod_parser *parser, uint32_t offset, uint32_t si
|
|||
|
||||
static inline struct spa_pod *spa_pod_parser_frame(struct spa_pod_parser *parser, struct spa_pod_frame *frame)
|
||||
{
|
||||
return SPA_MEMBER(parser->data, frame->offset, struct spa_pod);
|
||||
return SPA_PTROFF(parser->data, frame->offset, struct spa_pod);
|
||||
}
|
||||
|
||||
static inline void spa_pod_parser_push(struct spa_pod_parser *parser,
|
||||
|
|
|
|||
|
|
@ -37,10 +37,10 @@ extern "C" {
|
|||
#define SPA_POD_SIZE(pod) (sizeof(struct spa_pod) + SPA_POD_BODY_SIZE(pod))
|
||||
#define SPA_POD_CONTENTS_SIZE(type,pod) (SPA_POD_SIZE(pod)-sizeof(type))
|
||||
|
||||
#define SPA_POD_CONTENTS(type,pod) SPA_MEMBER((pod),sizeof(type),void)
|
||||
#define SPA_POD_CONTENTS_CONST(type,pod) SPA_MEMBER((pod),sizeof(type),const void)
|
||||
#define SPA_POD_BODY(pod) SPA_MEMBER((pod),sizeof(struct spa_pod),void)
|
||||
#define SPA_POD_BODY_CONST(pod) SPA_MEMBER((pod),sizeof(struct spa_pod),const void)
|
||||
#define SPA_POD_CONTENTS(type,pod) SPA_PTROFF((pod),sizeof(type),void)
|
||||
#define SPA_POD_CONTENTS_CONST(type,pod) SPA_PTROFF((pod),sizeof(type),const void)
|
||||
#define SPA_POD_BODY(pod) SPA_PTROFF((pod),sizeof(struct spa_pod),void)
|
||||
#define SPA_POD_BODY_CONST(pod) SPA_PTROFF((pod),sizeof(struct spa_pod),const void)
|
||||
|
||||
struct spa_pod {
|
||||
uint32_t size; /* size of the body */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue