[OTS] TAG() macro for big endian
Add TAG() macro for big endian.
BUG=chromium:124629
TEST=ran test_{un,}malicious_fonts.sh
Review URL: https://chromiumcodereview.appspot.com/10205009
git-svn-id: http://ots.googlecode.com/svn/trunk@88 a4e77c2c-9104-11de-800e-5b313e0d2bf3
diff --git a/src/ots.cc b/src/ots.cc
index 0663edf..3b5661c 100644
--- a/src/ots.cc
+++ b/src/ots.cc
@@ -82,8 +82,12 @@
};
// Use a macro instead of a function because gcc 4.4.3 creates static
-// initializers in that case. Note this macro assumes a little-endian system.
+// initializers in that case.
+#if defined(__BIG_ENDIAN__) || defined(_BIG_ENDIAN)
+#define TAG(d, c, b, a) (a | (b << 8) | (c << 16) | (d << 24))
+#else
#define TAG(a, b, c, d) (a | (b << 8) | (c << 16) | (d << 24))
+#endif
const struct {
uint32_t tag;