Quoting Joe Schaefer <[EMAIL PROTECTED]>:
Are you sure the "intermediate code" is correct?
It's calling free and destroy, which makes me think
that's some other "delete buckets" loop, not this one.>
Nice catch! The correct snippet is:
-------------------------------
do {
apr_bucket *f = (&(in)->list)->next;
do { (((((f))))->link.prev)->link.next =
((((f))))->link.next; (((((f))))->link.next)->link.prev =
((((f))))->link.prev; } while (0);
do { apr_bucket *ap__b = (f); do {
((((ap__b))))->link.next = ((struct apr_bucket *)((char
*)(((&(out)->list))) - ((long) (((char *) (&(((struct
apr_bucket*)((void *)0))->link))) - ((char *) ((void *)0))))));
((((ap__b))))->link.prev = (((struct apr_bucket *)((char
*)(((&(out)->list))) - ((long) (((char *) (&(((struct
apr_bucket*)((void *)0))->link))) - ((char *) ((void
*)0)))))))->link.prev; ((((struct apr_bucket *)((char
*)(((&(out)->list))) - ((long) (((char *) (&(((struct
apr_bucket*)((void *)0))->link))) - ((char *) ((void
*)0)))))))->link.prev)->link.next = (((ap__b))); (((struct apr_bucket
*)((char *)(((&(out)->list))) - ((long) (((char *) (&(((struct
apr_bucket*)((void *)0))->link))) - ((char *) ((void
*)0)))))))->link.prev = (((ap__b))); } while (0); ; } while (0);
} while (e != (&(in)->list)->next);
-------------------------------
Thanks Joe!
PS. Fixed Bugzilla too.
--
Bojan