diff --git a/modules/core/src/matrix.cpp b/modules/core/src/matrix.cpp index 2f057a0559..1de6e9ab37 100644 --- a/modules/core/src/matrix.cpp +++ b/modules/core/src/matrix.cpp @@ -221,8 +221,8 @@ public: MatAllocator* Mat::getStdAllocator() { - static StdMatAllocator allocator; - return &allocator; + static MatAllocator * allocator = new StdMatAllocator(); + return allocator; } void swap( Mat& a, Mat& b ) diff --git a/modules/core/src/ocl.cpp b/modules/core/src/ocl.cpp index 6f19b56eb5..9dd9f05efe 100644 --- a/modules/core/src/ocl.cpp +++ b/modules/core/src/ocl.cpp @@ -3959,8 +3959,8 @@ public: MatAllocator* getOpenCLAllocator() { - static OpenCLAllocator allocator; - return &allocator; + static MatAllocator * allocator = new OpenCLAllocator(); + return allocator; } ///////////////////////////////////////////// Utility functions /////////////////////////////////////////////////