diff options
author | Wim Taymans <wim.taymans@collabora.co.uk> | 2009-05-20 11:36:11 +0200 |
---|---|---|
committer | Wim Taymans <wim@metal.(none)> | 2009-05-20 11:36:11 +0200 |
commit | f3ff7ad055440a64f0fe3ad304883e5da5f37c0d (patch) | |
tree | 9500a09a4aa1a2f2e36ee84064dfd457c91476ec | |
parent | 49c4e367e9601f2c877b844bb004119b54ee89fe (diff) |
adapter: micro optimisations
-rw-r--r-- | libs/gst/base/gstadapter.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/libs/gst/base/gstadapter.c b/libs/gst/base/gstadapter.c index 67d5b0aa1d..66088b5591 100644 --- a/libs/gst/base/gstadapter.c +++ b/libs/gst/base/gstadapter.c @@ -257,14 +257,14 @@ copy_into_unchecked (GstAdapter * adapter, guint8 * dest, guint skip, dest += csize; /* second step, copy remainder */ - do { + while (size > 0) { g = g_slist_next (g); buf = g->data; csize = MIN (GST_BUFFER_SIZE (buf), size); memcpy (dest, GST_BUFFER_DATA (buf), csize); size -= csize; dest += csize; - } while (size > 0); + } } /** @@ -763,12 +763,10 @@ gst_adapter_masked_scan_uint32 (GstAdapter * adapter, guint32 mask, /* now find data */ do { bsize = MIN (bsize, size); - for (i = bsize; i; i--) { - state = ((state << 8) | *bdata++); - if (G_UNLIKELY ((state & mask) == pattern)) { - offset += (bsize - i) - 3; - goto found; - } + for (i = 0; i < bsize; i++) { + state = ((state << 8) | bdata[i]); + if (G_UNLIKELY ((state & mask) == pattern)) + return offset + i - 3; } size -= bsize; if (size == 0) @@ -783,7 +781,5 @@ gst_adapter_masked_scan_uint32 (GstAdapter * adapter, guint32 mask, } while (TRUE); /* nothing found */ - offset = -1; -found: - return offset; + return -1; } |