| commit | 2ad3a46560ff83f7f32e912cf59aa313637c2bf7 | [log] [tgz] |
|---|---|---|
| author | Tom Bergan <tombergan@fuchsia.infra.roller.google.com> | Tue Aug 09 00:42:21 2022 +0000 |
| committer | Copybara-Service <copybara-worker@google.com> | Mon Aug 08 17:44:28 2022 -0700 |
| tree | ecf8dcbb7251d5a0a455f30e156b372af6f5722d | |
| parent | cea7bad8e78c1a751e2e8cc69a7fafbf21f94dc7 [diff] |
[roll] Roll fuchsia [audio_core] Elminate allocations during the mix loop This CL eliminates two allocations during the mix loop 1. MixStage::ForEachSource allocates a std::vector to snapshot the set of source streams (which need to be snapshot because they may change concurrently. 2. ReadableStream::Buffer::dtor_ is a closure that may be allocated on the heap, since `fit::default_inline_target_size` is 2 64bit numbers while at least one closure needs 3 64bit numbers. To statically verify there is no heap allocation, we now use `fit::inline_callback` instead of `fit::callback`. This was slightly tricky in ForwardPacket because that closure actually contains a ReadableStream::Buffer, forming a recursive type (dtor closure -> Buffer -> dtor closure -> ...) which makes the compiler believe that the closure may have unbounded size. To help the compiler, the forwarded buffer has been moved to a field of ReadableStream. 2b. A similar change was made to PipelineStage::Packet::dtor_. Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/708583 Original-Revision: f7d913b804b846826b64503897341cadb5b5f007 GitOrigin-RevId: c4cad11745be0c331df5255bb2d9b918594be45d Change-Id: I904327a99942499acbfb4f16a2bda26fd1ee3f62
This repository contains Fuchsia's Global Integration manifest files.
All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.
Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party.