DescriptionGVDAH: fix crash on Android caused by invalid assumption of reentrancy on hash_map<>.
When a container's value's dtor might call another method of the container's,
one must ensure that the dtor is _not_ run in-line as the result of any of the
container's operations. Specifically here the evil chain is:
GpuVideoEncodeAcceleratorHost::OnNotifyInputDone() -> frame_map_.erase()
VideoFrame::~VideoFrame()
RTCVideoEncoder::Impl::EncodeFrameFinished()
RTCVideoEncoder::Impl::EncodeOneFrame()
GpuVideoEncodeAcceleratorHost::Encode()
GpuVideoEncodeAcceleratorHost::frame_map_.insert()
aaaaaand, boom!
The code at HEAD is invalid for any platform (b/c nothing specs reentrancy for
hash_map) but only bit me on Android (where we use stlport unlike other
platforms).
NOTRY=true
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=233238
Patch Set 1 #
Messages
Total messages: 14 (0 generated)
|