a6aa6d96f8aa10736c76deb2a6ef09027d375a4a

Before this change, it could happen that a caller would get a pointer to the encoder_ but not use it before another thread called the Reconstruct method, changing the pointer. This of course resulted in bad access crashes. With this change, each use of the pointer acquired from the encoder() method is protected by the same lock that is required to update the pointer. Note that this fix is probably too aggressive, since it also affects the Opus implementation; the crash has so far only been seen for iSAC. Also adding a test to trigger the problem. The test did not trigger the problem deterministically, but out would typically find it in less than 1000 runs. BUG=chromium:499468 R=jmarusic@webrtc.org, kwiberg@webrtc.org Review URL: https://codereview.webrtc.org/1176303004. Cr-Commit-Position: refs/heads/master@{#9436}
Description
No description provided
Languages
C++
88.6%
C
3.3%
Java
3%
Objective-C++
1.9%
Python
1.9%
Other
1%