diff --git a/src/pattern.c b/src/pattern.c index 93cdede11..acb78e38d 100644 --- a/src/pattern.c +++ b/src/pattern.c @@ -1652,7 +1652,7 @@ int pat_ref_delete_by_id(struct pat_ref *ref, struct pat_ref_elt *refelt) LIST_DEL(&bref->users); LIST_INIT(&bref->users); if (elt->list.n != &ref->head) - LIST_ADDQ(&LIST_ELEM(elt->list.n, struct stream *, list)->back_refs, &bref->users); + LIST_ADDQ(&LIST_ELEM(elt->list.n, typeof(elt), list)->back_refs, &bref->users); bref->ref = elt->list.n; } list_for_each_entry(expr, &ref->pat, list) @@ -1692,7 +1692,7 @@ int pat_ref_delete(struct pat_ref *ref, const char *key) LIST_DEL(&bref->users); LIST_INIT(&bref->users); if (elt->list.n != &ref->head) - LIST_ADDQ(&LIST_ELEM(elt->list.n, struct stream *, list)->back_refs, &bref->users); + LIST_ADDQ(&LIST_ELEM(elt->list.n, typeof(elt), list)->back_refs, &bref->users); bref->ref = elt->list.n; } list_for_each_entry(expr, &ref->pat, list) @@ -2087,7 +2087,7 @@ void pat_ref_reload(struct pat_ref *ref, struct pat_ref *replace) LIST_DEL(&bref->users); LIST_INIT(&bref->users); if (elt->list.n != &ref->head) - LIST_ADDQ(&LIST_ELEM(elt->list.n, struct stream *, list)->back_refs, &bref->users); + LIST_ADDQ(&LIST_ELEM(elt->list.n, typeof(elt), list)->back_refs, &bref->users); bref->ref = elt->list.n; } LIST_DEL(&elt->list); @@ -2176,7 +2176,7 @@ void pat_ref_prune(struct pat_ref *ref) LIST_DEL(&bref->users); LIST_INIT(&bref->users); if (elt->list.n != &ref->head) - LIST_ADDQ(&LIST_ELEM(elt->list.n, struct stream *, list)->back_refs, &bref->users); + LIST_ADDQ(&LIST_ELEM(elt->list.n, typeof(elt), list)->back_refs, &bref->users); bref->ref = elt->list.n; } LIST_DEL(&elt->list);