summaryrefslogtreecommitdiffstats
path: root/mozilla-885002.patch
diff options
context:
space:
mode:
Diffstat (limited to 'mozilla-885002.patch')
-rw-r--r--mozilla-885002.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/mozilla-885002.patch b/mozilla-885002.patch
new file mode 100644
index 0000000..e48c89a
--- /dev/null
+++ b/mozilla-885002.patch
@@ -0,0 +1,30 @@
+# HG changeset patch
+# Parent d8fd5706493e19bcb85443316a4c180849f5d247
+# User Steve Singer <steve@ssinger.info>
+Bug 885002 - Fix casting on 64 bit Big Endian platforms.
+
+
+diff --git a/content/media/FileBlockCache.h b/content/media/FileBlockCache.h
+--- a/content/media/FileBlockCache.h
++++ b/content/media/FileBlockCache.h
+@@ -138,19 +138,17 @@ public:
+
+ bool IsEmpty() {
+ return nsDeque::GetSize() == 0;
+ }
+
+ private:
+ int32_t ObjectAt(int32_t aIndex) {
+ void* v = nsDeque::ObjectAt(aIndex);
+- // Ugly hack to work around "casting 64bit void* to 32bit int loses precision"
+- // error on 64bit Linux.
+- return *(reinterpret_cast<int32_t*>(&v));
++ return reinterpret_cast<uintptr_t>(v);
+ }
+ };
+
+ private:
+ int64_t BlockIndexToOffset(int32_t aBlockIndex) {
+ return static_cast<int64_t>(aBlockIndex) * BLOCK_SIZE;
+ }
+