Messages in this thread | | | From | David Laight <> | Subject | RE: [PATCH 01/29] iov_iter: Switch to using a table of operations | Date | Sun, 22 Nov 2020 22:46:51 +0000 |
| |
From: David Howells > Sent: 21 November 2020 14:14 > > Switch to using a table of operations. In a future patch the individual > methods will be split up by type. For the moment, however, the ops tables > just jump directly to the old functions - which are now static. Inline > wrappers are provided to jump through the hooks.
I was wondering if you could use a bit of 'cpp magic' so the to call sites would be: ITER_CALL(iter, action)(arg_list);
which might expand to: iter->action(arg_list); in the function-table case. But could also be an if-chain: if (iter->type & foo) foo_action(args); else ... with foo_action() being inlined.
If there is enough symmetry it might make the code easier to read. Although I'm not sure what happens to 'iterate_all_kinds'. OTOH that is already unreadable.
David
- Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)
| |