Commit 0f56e21e authored by Marko Mäkelä's avatar Marko Mäkelä

MDEV-28091 PERFORMANCE_SCHEMA unit tests fail due to memory misalignment

Let us make the mocked-up pfs_malloc() return aligned memory, just
like the actual implementation does.
parent 57dbe878
/* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved. /* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
Copyright (c) 2022, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License, version 2.0, it under the terms of the GNU General Public License, version 2.0,
...@@ -24,6 +25,9 @@ ...@@ -24,6 +25,9 @@
#include <my_sys.h> #include <my_sys.h>
#include <pfs_global.h> #include <pfs_global.h>
#include <string.h> #include <string.h>
#ifdef HAVE_MEMALIGN
# include <malloc.h>
#endif
bool pfs_initialized= false; bool pfs_initialized= false;
...@@ -43,7 +47,17 @@ void *pfs_malloc(size_t size, myf) ...@@ -43,7 +47,17 @@ void *pfs_malloc(size_t size, myf)
if (--stub_alloc_fails_after_count <= 0) if (--stub_alloc_fails_after_count <= 0)
return NULL; return NULL;
#ifndef PFS_ALIGNEMENT
void *ptr= malloc(size); void *ptr= malloc(size);
#elif defined HAVE_MEMALIGN
void *ptr= memalign(PFS_ALIGNEMENT, size);
#elif defined HAVE_ALIGNED_MALLOC
void *ptr= _aligned_malloc(size, PFS_ALIGNEMENT);
#else
void *ptr;
if (posix_memalign(&ptr, PFS_ALIGNEMENT, size))
ptr= NULL;
#endif
if (ptr != NULL) if (ptr != NULL)
memset(ptr, 0, size); memset(ptr, 0, size);
return ptr; return ptr;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment