summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@collabora.co.uk>2009-05-20 11:36:11 +0200
committerWim Taymans <wim@metal.(none)>2009-05-20 11:36:11 +0200
commitf3ff7ad055440a64f0fe3ad304883e5da5f37c0d (patch)
tree9500a09a4aa1a2f2e36ee84064dfd457c91476ec
parent49c4e367e9601f2c877b844bb004119b54ee89fe (diff)
adapter: micro optimisations
-rw-r--r--libs/gst/base/gstadapter.c18
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;
}