Index: src/core/SkNx.h |
diff --git a/src/core/SkNx.h b/src/core/SkNx.h |
index 728e450ebbb9dcec7290c731b3d8781dae9e49b5..84f9b693537bdae6a56d4cb09757da8942400353 100644 |
--- a/src/core/SkNx.h |
+++ b/src/core/SkNx.h |
@@ -17,6 +17,13 @@ |
#include <math.h> |
#define REQUIRE(x) static_assert(x, #x) |
+// This file may be included multiple times by .cpp files with different flags, leading |
+// to different definitions. Usually that doesn't matter because it's all inlined, but |
+// in Debug modes the compilers may not inline everything. So wrap everything in an |
+// anonymous namespace to give each includer their own silo of this code (or the linker |
+// will probably pick one randomly for us, which is rarely correct). |
+namespace { |
+ |
// The default implementations just fall back on a pair of size N/2. |
template <int N, typename T> |
@@ -244,6 +251,8 @@ |
T fVal; |
}; |
+ |
+} // namespace |
// Include platform specific specializations if available. |
#ifndef SKNX_NO_SIMD |