Changeset 147278 in webkit


Ignore:
Timestamp:
Mar 30, 2013 3:41:17 AM (11 years ago)
Author:
commit-queue@webkit.org
Message:

g_slist_reverse() may not be required in webKitWebAudioSrcLoop
https://bugs.webkit.org/show_bug.cgi?id=113568

Patch by Praveen R Jadhav <praveen.j@samsung.com> on 2013-03-30
Reviewed by Philippe Normand.

Decremental 'for' loop logic implemented to avoid using g_slist_reverse().

Original code - 2.025230 micro seconds per loop
Original code + patch - 1.964759 micro seconds per loop

This patch is covered by existing webaudio tests.

  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

(webKitWebAudioSrcLoop):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r147275 r147278  
     12013-03-30  Praveen R Jadhav  <praveen.j@samsung.com>
     2
     3        g_slist_reverse() may not be required in webKitWebAudioSrcLoop
     4        https://bugs.webkit.org/show_bug.cgi?id=113568
     5
     6        Reviewed by Philippe Normand.
     7
     8        Decremental 'for' loop logic implemented to avoid using g_slist_reverse().
     9
     10        Original code            - 2.025230 micro seconds per loop
     11        Original code + patch    - 1.964759 micro seconds per loop
     12
     13        This patch is covered by existing webaudio tests.
     14
     15        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
     16        (webKitWebAudioSrcLoop):
     17
    1182013-03-30  Alexei Filippov  <alph@chromium.org>
    219
  • trunk/Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp

    r140272 r147278  
    356356    GSList* channelBufferList = 0;
    357357    unsigned bufferSize = priv->framesToPull * sizeof(float);
    358     for (unsigned i = 0; i < g_slist_length(priv->pads); i++) {
     358    for (int i = g_slist_length(priv->pads) - 1; i >= 0; i--) {
    359359        GstBuffer* channelBuffer = gst_buffer_new_and_alloc(bufferSize);
    360360        ASSERT(channelBuffer);
     
    369369#endif
    370370    }
    371     channelBufferList = g_slist_reverse(channelBufferList);
    372371
    373372    // FIXME: Add support for local/live audio input.
    374373    priv->provider->render(0, priv->bus, priv->framesToPull);
    375374
    376     for (unsigned i = 0; i < g_slist_length(priv->pads); i++) {
     375    for (int i = g_slist_length(priv->pads) - 1; i >= 0; i--) {
    377376        GstPad* pad = static_cast<GstPad*>(g_slist_nth_data(priv->pads, i));
    378377        GstBuffer* channelBuffer = static_cast<GstBuffer*>(g_slist_nth_data(channelBufferList, i));
Note: See TracChangeset for help on using the changeset viewer.