mirror of
https://git.notmuchmail.org/git/notmuch
synced 2025-03-31 20:59:20 +02:00
As diagnosed by Olivier Taïbi in id:20201027100916.emry3k2wujod4xnl@galois.lan, if an exception is thrown while the initialization is happening (e.g. if the function is called on a closed database), then the destructor is (sometimes) invoked on an uninitialized Xapian object. Solve the problem by moving the setting of the destructor until after the placement new successfully completes. It is conceivable this might cause a memory leak, but that seems preferable to crashing, and in any case, there seems to be nothing better to be done if the initialization is failing things are in an undefined state by definition. |
||
---|---|---|
.. | ||
add-message.cc | ||
built-with.c | ||
config.cc | ||
database-private.h | ||
database.cc | ||
directory.cc | ||
filenames.c | ||
index.cc | ||
indexopts.c | ||
Makefile | ||
Makefile.local | ||
message-file.c | ||
message-id.c | ||
message-private.h | ||
message-property.cc | ||
message.cc | ||
messages.c | ||
notmuch-private.h | ||
notmuch.h | ||
notmuch.sym | ||
parse-time-vrp.cc | ||
parse-time-vrp.h | ||
query-fp.cc | ||
query-fp.h | ||
query.cc | ||
regexp-fields.cc | ||
regexp-fields.h | ||
sha1.c | ||
string-list.c | ||
string-map.c | ||
tags.c | ||
thread-fp.cc | ||
thread-fp.h | ||
thread.cc |