aboutsummaryrefslogtreecommitdiff
path: root/src/utils/memory.h
diff options
context:
space:
mode:
authorBoyuan Yang <byang@debian.org>2021-11-07 08:50:18 -0500
committerBoyuan Yang <byang@debian.org>2021-11-07 08:50:18 -0500
commit320ef65362608ee1148c299d8d5d7618af34e470 (patch)
treec47911c219d1e35b8b0771e9e0176eff0e0d08ec /src/utils/memory.h
parent2381d803c76105f44717d75f089ec37f51e5cfe4 (diff)
downloadlibgav1-320ef65362608ee1148c299d8d5d7618af34e470.tar.gz
libgav1-320ef65362608ee1148c299d8d5d7618af34e470.tar.bz2
libgav1-320ef65362608ee1148c299d8d5d7618af34e470.zip
New upstream version 0.17.0
Diffstat (limited to 'src/utils/memory.h')
-rw-r--r--src/utils/memory.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/utils/memory.h b/src/utils/memory.h
index a8da53b..d1762a2 100644
--- a/src/utils/memory.h
+++ b/src/utils/memory.h
@@ -17,7 +17,7 @@
#ifndef LIBGAV1_SRC_UTILS_MEMORY_H_
#define LIBGAV1_SRC_UTILS_MEMORY_H_
-#if defined(__ANDROID__) || defined(_MSC_VER)
+#if defined(__ANDROID__) || defined(_MSC_VER) || defined(__MINGW32__)
#include <malloc.h>
#endif
@@ -55,7 +55,7 @@ enum {
// void AlignedFree(void* aligned_memory);
// Free aligned memory.
-#if defined(_MSC_VER) // MSVC
+#if defined(_MSC_VER) || defined(__MINGW32__)
inline void* AlignedAlloc(size_t alignment, size_t size) {
return _aligned_malloc(size, alignment);
@@ -63,7 +63,7 @@ inline void* AlignedAlloc(size_t alignment, size_t size) {
inline void AlignedFree(void* aligned_memory) { _aligned_free(aligned_memory); }
-#else // !defined(_MSC_VER)
+#else // !(defined(_MSC_VER) || defined(__MINGW32__))
inline void* AlignedAlloc(size_t alignment, size_t size) {
#if defined(__ANDROID__)
@@ -89,7 +89,7 @@ inline void* AlignedAlloc(size_t alignment, size_t size) {
inline void AlignedFree(void* aligned_memory) { free(aligned_memory); }
-#endif // defined(_MSC_VER)
+#endif // defined(_MSC_VER) || defined(__MINGW32__)
inline void Memset(uint8_t* const dst, int value, size_t count) {
memset(dst, value, count);
@@ -101,6 +101,12 @@ inline void Memset(uint16_t* const dst, int value, size_t count) {
}
}
+inline void Memset(int16_t* const dst, int value, size_t count) {
+ for (size_t i = 0; i < count; ++i) {
+ dst[i] = static_cast<int16_t>(value);
+ }
+}
+
struct MallocDeleter {
void operator()(void* ptr) const { free(ptr); }
};