Title: [268002] trunk/Source/WebCore
Revision
268002
Author
cdu...@apple.com
Date
2020-10-05 14:29:45 -0700 (Mon, 05 Oct 2020)

Log Message

Use memset to zero vectors in PeriodicWave::createBandLimitedTables()
https://bugs.webkit.org/show_bug.cgi?id=217328

Reviewed by Darin Adler.

Use memset to zero vectors in PeriodicWave::createBandLimitedTables() instead of a for
loop, for performance reasons.

No new tests, no Web-facing behavior change.

* Modules/webaudio/PeriodicWave.cpp:
(WebCore::PeriodicWave::createBandLimitedTables):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (268001 => 268002)


--- trunk/Source/WebCore/ChangeLog	2020-10-05 21:15:53 UTC (rev 268001)
+++ trunk/Source/WebCore/ChangeLog	2020-10-05 21:29:45 UTC (rev 268002)
@@ -1,5 +1,20 @@
 2020-10-05  Chris Dumez  <cdu...@apple.com>
 
+        Use memset to zero vectors in PeriodicWave::createBandLimitedTables()
+        https://bugs.webkit.org/show_bug.cgi?id=217328
+
+        Reviewed by Darin Adler.
+
+        Use memset to zero vectors in PeriodicWave::createBandLimitedTables() instead of a for
+        loop, for performance reasons.
+
+        No new tests, no Web-facing behavior change.
+
+        * Modules/webaudio/PeriodicWave.cpp:
+        (WebCore::PeriodicWave::createBandLimitedTables):
+
+2020-10-05  Chris Dumez  <cdu...@apple.com>
+
         Use tryHoldLock() in WebAudio to simplify the code
         https://bugs.webkit.org/show_bug.cgi?id=217332
 

Modified: trunk/Source/WebCore/Modules/webaudio/PeriodicWave.cpp (268001 => 268002)


--- trunk/Source/WebCore/Modules/webaudio/PeriodicWave.cpp	2020-10-05 21:15:53 UTC (rev 268001)
+++ trunk/Source/WebCore/Modules/webaudio/PeriodicWave.cpp	2020-10-05 21:29:45 UTC (rev 268002)
@@ -190,7 +190,6 @@
 
     unsigned fftSize = periodicWaveSize();
     unsigned halfSize = fftSize / 2;
-    unsigned i;
     
     numberOfComponents = std::min(numberOfComponents, halfSize);
 
@@ -215,9 +214,11 @@
         // If fewer components were provided than 1/2 FFT size, then clear the
         // remaining bins. We also need to cull the aliasing partials for this
         // pitch range.
-        for (i = std::min(numberOfComponents, numberOfPartials + 1); i < halfSize; ++i) {
-            realP[i] = 0;
-            imagP[i] = 0;
+        unsigned clampedNumberOfComponents = std::min(numberOfComponents, numberOfPartials + 1);
+        if (clampedNumberOfComponents < halfSize) {
+            size_t numBytes = (halfSize - clampedNumberOfComponents) * sizeof(float);
+            memset(&realP[clampedNumberOfComponents], 0, numBytes);
+            memset(&imagP[clampedNumberOfComponents], 0, numBytes);
         }
 
         // Clear packed-nyquist and any DC-offset.
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to