_aligned_malloc() on Windows first takes size, then alignment, which is the opposite of how the similar function behaves on Linux. Memory allocated by it also has to be freed using _aligned_free(), unlike Linux where we can use regular free().

Edit aligned_alloc() macro and add a aligned_free() one to align with the above behaviour.
Этот коммит содержится в:
Vladislav Sytchenko
2019-10-17 18:58:32 -04:00
родитель 10cc2f4ab3
Коммит 8f0a226660
2 изменённых файлов: 7 добавлений и 3 удалений
+5 -1
Просмотреть файл
@@ -99,11 +99,15 @@ THE SOFTWARE.
#ifdef _WIN64
#include <tchar.h>
#define aligned_alloc _aligned_malloc
#define aligned_alloc(x,y) _aligned_malloc(y,x)
#define aligned_free(x) _aligned_free(x)
#define popen(x,y) _popen(x,y)
#define pclose(x) _pclose(x)
#define setenv(x,y,z) _putenv_s(x,y)
#endif
#else
#define aligned_free(x) free(x)
#endif
// standard command-line variables:
extern size_t N;