1*bf2c3715SXin Li// This file is part of Eigen, a lightweight C++ template library 2*bf2c3715SXin Li// for linear algebra. 3*bf2c3715SXin Li// 4*bf2c3715SXin Li// This Source Code Form is subject to the terms of the Mozilla 5*bf2c3715SXin Li// Public License v. 2.0. If a copy of the MPL was not distributed 6*bf2c3715SXin Li// with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7*bf2c3715SXin Li 8*bf2c3715SXin Li#ifndef EIGEN_QTMALLOC_MODULE_H 9*bf2c3715SXin Li#define EIGEN_QTMALLOC_MODULE_H 10*bf2c3715SXin Li 11*bf2c3715SXin Li#include "Core" 12*bf2c3715SXin Li 13*bf2c3715SXin Li#if (!EIGEN_MALLOC_ALREADY_ALIGNED) 14*bf2c3715SXin Li 15*bf2c3715SXin Li#include "src/Core/util/DisableStupidWarnings.h" 16*bf2c3715SXin Li 17*bf2c3715SXin Livoid *qMalloc(std::size_t size) 18*bf2c3715SXin Li{ 19*bf2c3715SXin Li return Eigen::internal::aligned_malloc(size); 20*bf2c3715SXin Li} 21*bf2c3715SXin Li 22*bf2c3715SXin Livoid qFree(void *ptr) 23*bf2c3715SXin Li{ 24*bf2c3715SXin Li Eigen::internal::aligned_free(ptr); 25*bf2c3715SXin Li} 26*bf2c3715SXin Li 27*bf2c3715SXin Livoid *qRealloc(void *ptr, std::size_t size) 28*bf2c3715SXin Li{ 29*bf2c3715SXin Li void* newPtr = Eigen::internal::aligned_malloc(size); 30*bf2c3715SXin Li std::memcpy(newPtr, ptr, size); 31*bf2c3715SXin Li Eigen::internal::aligned_free(ptr); 32*bf2c3715SXin Li return newPtr; 33*bf2c3715SXin Li} 34*bf2c3715SXin Li 35*bf2c3715SXin Li#include "src/Core/util/ReenableStupidWarnings.h" 36*bf2c3715SXin Li 37*bf2c3715SXin Li#endif 38*bf2c3715SXin Li 39*bf2c3715SXin Li#endif // EIGEN_QTMALLOC_MODULE_H 40