diff --git a/src/common/IntlParametersBlock.h b/src/common/IntlParametersBlock.h index c4bcf73e8d3..b58fd74bb58 100644 --- a/src/common/IntlParametersBlock.h +++ b/src/common/IntlParametersBlock.h @@ -44,6 +44,8 @@ class IntlParametersBlock virtual TagType checkTag(UCHAR tag, const char** tagName) noexcept = 0; virtual UCHAR getUtf8Tag() noexcept = 0; + virtual ~IntlParametersBlock() = default; + void toUtf8(ClumpletWriter& pb); void fromUtf8(ClumpletWriter& pb); diff --git a/src/common/ThreadStart.cpp b/src/common/ThreadStart.cpp index b5d6eb12e47..21b658cd9dd 100644 --- a/src/common/ThreadStart.cpp +++ b/src/common/ThreadStart.cpp @@ -182,7 +182,7 @@ void Thread::start(ThreadEntryPoint* routine, void* arg, int priority_arg, Threa if (pThread != &thread) { int dummy; // We do not want to know old cancel type - state = pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, &dummy); + state = pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, &dummy); if (state) Firebird::system_call_failed::raise("pthread_setcanceltype", state); } diff --git a/src/common/classes/BatchCompletionState.h b/src/common/classes/BatchCompletionState.h index c8de5d5c0e4..391867c4da4 100644 --- a/src/common/classes/BatchCompletionState.h +++ b/src/common/classes/BatchCompletionState.h @@ -34,6 +34,7 @@ namespace Firebird { { public: virtual void transliterate(IStatus* status) = 0; + virtual ~Transliterate() = default; }; class BatchCompletionState final : diff --git a/src/common/classes/Hash.h b/src/common/classes/Hash.h index f5dfc8b2e9a..538310c1d1c 100644 --- a/src/common/classes/Hash.h +++ b/src/common/classes/Hash.h @@ -103,6 +103,7 @@ namespace Firebird void link(Entry** where) noexcept { + fb_assert(where != nullptr); unLink(); // set our pointers