From 1bed986adb40fff0c37d236532d92d8c6fd701ef Mon Sep 17 00:00:00 2001 From: Marshall Greenblatt Date: Wed, 30 Jun 2021 12:33:22 -0400 Subject: [PATCH] Windows: Fix cef_sandbox.lib unresolved external throw_bad_optional_access Fixes the following linker error with the official cef_sandbox.lib build: cef_sandbox.lib(task_queue_selector.obj) : error LNK2001: unresolved external symbol "void __cdecl absl::optional_internal::throw_bad_optional_access(void)" (?throw_bad_optional_access@optional_internal@absl@@YAXXZ) --- libcef_dll/sandbox/sandbox_win.cc | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/libcef_dll/sandbox/sandbox_win.cc b/libcef_dll/sandbox/sandbox_win.cc index bf857f51f..c13297074 100644 --- a/libcef_dll/sandbox/sandbox_win.cc +++ b/libcef_dll/sandbox/sandbox_win.cc @@ -41,13 +41,24 @@ void cef_sandbox_info_destroy(void* sandbox_info) { } #if BUILDFLAG(IS_CEF_SANDBOX_BUILD) -// Implementation from third_party/abseil-cpp/absl/types/bad_variant_access.cc -// to avoid bringing in absl dependencies. +// Avoid bringing in absl dependencies. namespace absl { + +// From third_party/abseil-cpp/absl/types/bad_optional_access.cc +namespace optional_internal { +void throw_bad_optional_access() { + LOG(FATAL) << "Bad optional access"; + abort(); +} +} // namespace optional_internal + +// From third_party/abseil-cpp/absl/types/bad_variant_access.cc namespace variant_internal { void ThrowBadVariantAccess() { LOG(FATAL) << "Bad variant access"; + abort(); } } // namespace variant_internal + } // namespace absl #endif // BUILDFLAG(IS_CEF_SANDBOX_BUILD)