===
356 + if (release_fn)
357 + release_fn(wrapped.get());
===
I think Move assignment should not cause the buffer to be released back to the queue.
That would be analogous to move assigning a unique_ptr and having the ptr be deleted while doing that.
Maybe a bit cleaner (but not blocking) if you allow BufferHandle to be default constructed and implement the negation operator,
so that line 1198 is not needed then, and line 1209 just becomes: if (!compositor_buffer_handle)
=== void(graphics: :Buffer* buffer)> release_callback;
68 +typedef std::function<
===
Should be ReleaseCallback according to the mir style guide: unity.ubuntu. com/mir/ cppguide/ index.html# Type_Names
http://
===
80 + virtual ~BufferHandle();
===
Not needed
=== fn(wrapped. get());
356 + if (release_fn)
357 + release_
===
I think Move assignment should not cause the buffer to be released back to the queue.
That would be analogous to move assigning a unique_ptr and having the ptr be deleted while doing that.
=== buffer_ handle{ nullptr, nullptr}, buffer_ handle. buffer( )) buffer_ handle = underlying_ buffer_ queue-> compositor_ acquire( compositor_ id);
1198 + compositor_
1209 + if (!compositor_
1210 + compositor_
===
Maybe a bit cleaner (but not blocking) if you allow BufferHandle to be default constructed and implement the negation operator, buffer_ handle)
so that line 1198 is not needed then, and line 1209 just becomes: if (!compositor_
=== compositor: :BufferHandle( stub_compositor _buffer, nullptr)); compositor: :BufferHandle( stub_compositor _buffer, nullptr));
1623 + return std::move(
1628 + return std::move(
===
You ca do away with the std::move
Needs information:
Do the BufferStream integration and unit tests (BufferStreamTe st.*) overlap with other tests?
Otherwise they should be updated but kept not removed.