Skip to content

Commit cef75ef

Browse files
committed
Pacify address sanitizer on windows
1 parent 92f8c5b commit cef75ef

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

src/google/protobuf/dynamic_message.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -304,10 +304,10 @@ class DynamicMessage final : public Message {
304304
// class's memory is allocated via the global operator new. Thus, we need to
305305
// manually call the global operator delete. Calling the destructor is taken
306306
// care of for us. This makes DynamicMessage compatible with -fsized-delete.
307-
// It doesn't work for MSVC though.
308-
#ifndef _MSC_VER
307+
// Working in MSVC 19.30+ (MSVS 2022), may not work in old versions though.
308+
#if !defined(_MSC_VER) || (_MSC_VER >= 1930)
309309
static void operator delete(void* ptr) { ::operator delete(ptr); }
310-
#endif // !_MSC_VER
310+
#endif // !defined(_MSC_VER) || (_MSC_VER >= 1930)
311311
#endif
312312

313313
private:

src/google/protobuf/extension_set.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1654,7 +1654,8 @@ void ExtensionSet::Extension::Free() {
16541654
if (is_lazy) {
16551655
delete ptr.lazymessage_value;
16561656
} else {
1657-
delete ptr.message_value;
1657+
ptr.message_value->~MessageLite();
1658+
::operator delete(ptr.message_value);
16581659
}
16591660
break;
16601661
default:

0 commit comments

Comments
 (0)