the following is part of your conn-size patch:

    - RecordVal* tmp_rc = resp_endp;
    - resp_endp = orig_endp;
    - orig_endp = tmp_rc;


actually swapping still works.

The code below is a left-over from an earlier iteration of the conn-size
code in which the swapping did not work.... Want me to change it back or
can you do so when you merge?


Yes, please change it back then.



will do. Is there a trace to test the swapping behavior?

Actually there's a bit more to that. Even the original code did a
    conn_val = 0;
in Connection::FlipRoles(), i.e. the full conn_val had to be rebuild
after a FlipRole() and only the endpoint pointers were reused as the
original code also kept distinct pointers to the endp_vals.

My code however doesn't keep pointers to the endp_vals, because I now
use a root_analyzer->UpateConnVal() instead of two
root_analyzer->UpdateEndpointVal() calls. As per our general discussion,
I'm doing this so that any child analyzer could now update or extend the
conn_val or the endpoint vals. So, swapping doesn't make sense anymore
unless we keep conn_val (in which case conn_id and the endp_vals have to
be replaced).

(However, I just saw that the conn_size analyzer doesn't flip its
counters. Will fix that.)

(sorry for the first, incorrect e-mail. Should reply to e-mails before
my first coffee)