mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
Avoid memory leak when constructor of user-defined type throws exception.
The added check `ctorleak.cpp` demonstrates how the leak can be reproduced.
The test appears to pass but it is leaking the storage of the (not created)
matrix. I don't know how to make this test fail in the existing test suite but
you can run it through Valgrind (or another debugger) to verify the leak.
$ ./check.sh ctorleak && valgrind --leak-check=full ./test/ctorleak
This patch fixes this leak by adding some try-catch-delete-rethrow blocks to
`Eigen/src/Core/util/Memory.h`.
This commit is contained in:
@@ -251,6 +251,8 @@ ei_add_test(bicgstab)
|
||||
ei_add_test(sparselu)
|
||||
ei_add_test(sparseqr)
|
||||
|
||||
ei_add_test(ctorleak)
|
||||
|
||||
# ei_add_test(denseLM)
|
||||
|
||||
if(QT4_FOUND)
|
||||
|
||||
Reference in New Issue
Block a user