OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "mojo/edk/system/memory.h" | 5 #include "mojo/edk/system/memory.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "build/build_config.h" | 10 #include "build/build_config.h" |
11 | 11 |
12 namespace mojo { | 12 namespace mojo { |
13 namespace system { | 13 namespace edk { |
14 namespace internal { | 14 namespace internal { |
15 | 15 |
16 template <size_t alignment> | 16 template <size_t alignment> |
17 bool IsAligned(const void* pointer) { | 17 bool IsAligned(const void* pointer) { |
18 return reinterpret_cast<uintptr_t>(pointer) % alignment == 0; | 18 return reinterpret_cast<uintptr_t>(pointer) % alignment == 0; |
19 } | 19 } |
20 | 20 |
21 // MSVS (2010, 2013) sometimes (on the stack) aligns, e.g., |int64_t|s (for | 21 // MSVS (2010, 2013) sometimes (on the stack) aligns, e.g., |int64_t|s (for |
22 // which |__alignof(int64_t)| is 8) to 4-byte boundaries. http://goo.gl/Y2n56T | 22 // which |__alignof(int64_t)| is 8) to 4-byte boundaries. http://goo.gl/Y2n56T |
23 #if defined(COMPILER_MSVC) && defined(ARCH_CPU_32_BITS) | 23 #if defined(COMPILER_MSVC) && defined(ARCH_CPU_32_BITS) |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
78 CheckUserPointerWithSize<8>(const void* pointer, size_t size) { | 78 CheckUserPointerWithSize<8>(const void* pointer, size_t size) { |
79 CHECK(size == 0 || | 79 CHECK(size == 0 || |
80 (!!pointer && reinterpret_cast<uintptr_t>(pointer) % 8 == 0)); | 80 (!!pointer && reinterpret_cast<uintptr_t>(pointer) % 8 == 0)); |
81 } | 81 } |
82 #else | 82 #else |
83 template void MOJO_SYSTEM_IMPL_EXPORT | 83 template void MOJO_SYSTEM_IMPL_EXPORT |
84 CheckUserPointerWithSize<8>(const void*, size_t); | 84 CheckUserPointerWithSize<8>(const void*, size_t); |
85 #endif | 85 #endif |
86 | 86 |
87 } // namespace internal | 87 } // namespace internal |
88 } // namespace system | 88 } // namespace edk |
89 } // namespace mojo | 89 } // namespace mojo |
OLD | NEW |