This is wrong. If one some step topic was checked from one mavlink stream, another will have data uninitialized. Old approach is also bad, it fails at some conditions.

Need to implement per-stream updates tracking, the same as already implemented in uORB, if we want to reuse uORB subscription. I think @px4dev is right, it will be easyer to fix uORB itself to allow many subscriptions from one app and simply create new subscription for each mavlink stream, it will me more clear.