Bug 226476

Summary: Fix thread safety issues in MediaStreamAudioSourceNode
Product: WebKit Reporter: Chris Dumez <cdumez>
Component: Web AudioAssignee: Chris Dumez <cdumez>
Status: RESOLVED FIXED    
Severity: Normal CC: cdumez, darin, eric.carlson, ews-watchlist, ggaren, glenn, jer.noble, peng.liu6, philipj, sam, sergio, webkit-bug-importer, youennf
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Patch none

Description Chris Dumez 2021-05-31 17:30:43 PDT
Adopt thread safety analysis annotations in MediaStreamAudioSourceNode and fix bugs found by clang.
Comment 1 Chris Dumez 2021-05-31 17:34:00 PDT
Created attachment 430219 [details]
Patch
Comment 2 youenn fablet 2021-06-01 04:57:49 PDT
Comment on attachment 430219 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=430219&action=review

> Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.cpp:109
> +    if (sourceSampleRate == sampleRate())

We could keep a single sampleRate call as a minor optimization.
Comment 3 Chris Dumez 2021-06-01 07:37:00 PDT
(In reply to youenn fablet from comment #2)
> Comment on attachment 430219 [details]
> Patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=430219&action=review
> 
> > Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.cpp:109
> > +    if (sourceSampleRate == sampleRate())
> 
> We could keep a single sampleRate call as a minor optimization.

SampleRate() is an in-line function so it did not seem worth it?
Comment 4 youenn fablet 2021-06-01 07:44:56 PDT
(In reply to Chris Dumez from comment #3)
> (In reply to youenn fablet from comment #2)
> > Comment on attachment 430219 [details]
> > Patch
> > 
> > View in context:
> > https://bugs.webkit.org/attachment.cgi?id=430219&action=review
> > 
> > > Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.cpp:109
> > > +    if (sourceSampleRate == sampleRate())
> > 
> > We could keep a single sampleRate call as a minor optimization.
> 
> SampleRate() is an in-line function so it did not seem worth it?

Isn't it a virtual method?
Comment 5 Chris Dumez 2021-06-01 07:46:11 PDT
(In reply to youenn fablet from comment #4)
> (In reply to Chris Dumez from comment #3)
> > (In reply to youenn fablet from comment #2)
> > > Comment on attachment 430219 [details]
> > > Patch
> > > 
> > > View in context:
> > > https://bugs.webkit.org/attachment.cgi?id=430219&action=review
> > > 
> > > > Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.cpp:109
> > > > +    if (sourceSampleRate == sampleRate())
> > > 
> > > We could keep a single sampleRate call as a minor optimization.
> > 
> > SampleRate() is an in-line function so it did not seem worth it?
> 
> Isn't it a virtual method?

Oh, it is. and it isn't inline either. I was confused.
Comment 6 Chris Dumez 2021-06-01 07:48:21 PDT
Created attachment 430261 [details]
Patch
Comment 7 Chris Dumez 2021-06-01 08:08:14 PDT
(In reply to Chris Dumez from comment #5)
> (In reply to youenn fablet from comment #4)
> > (In reply to Chris Dumez from comment #3)
> > > (In reply to youenn fablet from comment #2)
> > > > Comment on attachment 430219 [details]
> > > > Patch
> > > > 
> > > > View in context:
> > > > https://bugs.webkit.org/attachment.cgi?id=430219&action=review
> > > > 
> > > > > Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.cpp:109
> > > > > +    if (sourceSampleRate == sampleRate())
> > > > 
> > > > We could keep a single sampleRate call as a minor optimization.
> > > 
> > > SampleRate() is an in-line function so it did not seem worth it?
> > 
> > Isn't it a virtual method?
> 
> Oh, it is. and it isn't inline either. I was confused.

Fixed before landing, thanks for catching.
Comment 8 EWS 2021-06-01 08:35:01 PDT
Committed r278309 (238346@main): <https://commits.webkit.org/238346@main>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430261 [details].
Comment 9 Radar WebKit Bug Importer 2021-06-01 08:36:16 PDT
<rdar://problem/78715855>