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