author | Wolfgang Rosenauer <wr@rosenauer.org> |
Sun, 20 Oct 2019 14:25:55 +0200 | |
branch | firefox69 |
changeset 1111 | 97a6da6d7e29 |
parent 1101 | a4709640638e |
permissions | -rw-r--r-- |
1101
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1 |
# HG changeset patch |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
2 |
# Parent 45680ce4ca06795cbca1ea5a9ae8a7a11ab95cf1 |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
3 |
The code tries to find a codec in a list of codecs. For this it searches for a given prefix. |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
4 |
But the prefix is of type char16_t, which means 2 bytes per character instead of 1, as was compared here. |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
5 |
On big endian this created some false positives, as the order of bytes is different and some characters only |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
6 |
occupy "the first" byte, having the second null'ed out. |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
7 |
Noticed because of gtest: MediaMIMETypes.MediaCodecs |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
8 |
|
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
9 |
Upstream bugreport: https://bugzilla.mozilla.org/show_bug.cgi?id=1573381 |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
10 |
|
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
11 |
diff -r 45680ce4ca06 -r 381102061fcc dom/media/MediaMIMETypes.cpp |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
12 |
--- a/dom/media/MediaMIMETypes.cpp Mon Aug 05 09:28:53 2019 +0200 |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
13 |
+++ b/dom/media/MediaMIMETypes.cpp Tue Aug 13 07:51:27 2019 +0200 |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
14 |
@@ -87,7 +87,7 @@ |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
15 |
const size_t prefixLength = aCodecPrefix.Length(); |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
16 |
for (const auto& myCodec : Range()) { |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
17 |
if (myCodec.Length() >= prefixLength && |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
18 |
- memcmp(myCodec.Data(), aCodecPrefix.Data(), prefixLength) == 0) { |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
19 |
+ memcmp(myCodec.Data(), aCodecPrefix.Data(), prefixLength * sizeof(char16_t)) == 0) { |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
20 |
return true; |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
21 |
} |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
22 |
} |