We have to avoid memroy allocations in this function.  We can't have memory allocations to pass data between components using mboxes.  It is impossible to make it predictable.