• Adam Cozzette's avatar
    Fix initialization with Visual Studio · a9abc783
    Adam Cozzette authored
    It appears that Visual Studio does not work well with std::once_flag
    because it has a bug causing it to initialize that during dynamic
    initialization instead of constant initialization. This change works
    around the problem by using function static initializers instead.
    
    @gerben-s originally wrote this change for the Google-internal codebase
    but I am just cherry-picking it here.
    
    This fixes #4773.
    a9abc783
Name
Last commit
Last update
..
compiler Loading commit data...
io Loading commit data...
stubs Loading commit data...
testdata Loading commit data...
testing Loading commit data...
util Loading commit data...
any.cc Loading commit data...
any.h Loading commit data...
any.pb.cc Loading commit data...
any.pb.h Loading commit data...
any.proto Loading commit data...
any_test.cc Loading commit data...
any_test.proto Loading commit data...
api.pb.cc Loading commit data...
api.pb.h Loading commit data...
api.proto Loading commit data...
arena.cc Loading commit data...
arena.h Loading commit data...
arena_impl.h Loading commit data...
arena_test_util.cc Loading commit data...
arena_test_util.h Loading commit data...
arena_unittest.cc Loading commit data...
arenastring.cc Loading commit data...
arenastring.h Loading commit data...
arenastring_unittest.cc Loading commit data...
descriptor.cc Loading commit data...
descriptor.h Loading commit data...
descriptor.pb.cc Loading commit data...
descriptor.pb.h Loading commit data...
descriptor.proto Loading commit data...
descriptor_database.cc Loading commit data...
descriptor_database.h Loading commit data...
descriptor_database_unittest.cc Loading commit data...
descriptor_unittest.cc Loading commit data...
drop_unknown_fields_test.cc Loading commit data...
duration.pb.cc Loading commit data...
duration.pb.h Loading commit data...
duration.proto Loading commit data...
dynamic_message.cc Loading commit data...
dynamic_message.h Loading commit data...
dynamic_message_unittest.cc Loading commit data...
empty.pb.cc Loading commit data...
empty.pb.h Loading commit data...
empty.proto Loading commit data...
extension_set.cc Loading commit data...
extension_set.h Loading commit data...
extension_set_heavy.cc Loading commit data...
extension_set_unittest.cc Loading commit data...
field_mask.pb.cc Loading commit data...
field_mask.pb.h Loading commit data...
field_mask.proto Loading commit data...
generated_enum_reflection.h Loading commit data...
generated_enum_util.h Loading commit data...
generated_message_reflection.cc Loading commit data...
generated_message_reflection.h Loading commit data...
generated_message_reflection_unittest.cc Loading commit data...
generated_message_table_driven.cc Loading commit data...
generated_message_table_driven.h Loading commit data...
generated_message_table_driven_lite.cc Loading commit data...
generated_message_table_driven_lite.h Loading commit data...
generated_message_util.cc Loading commit data...
generated_message_util.h Loading commit data...
has_bits.h Loading commit data...
implicit_weak_message.cc Loading commit data...
implicit_weak_message.h Loading commit data...
inlined_string_field.h Loading commit data...
lite_arena_unittest.cc Loading commit data...
lite_unittest.cc Loading commit data...
map.h Loading commit data...
map_entry.h Loading commit data...
map_entry_lite.h Loading commit data...
map_field.cc Loading commit data...
map_field.h Loading commit data...
map_field_inl.h Loading commit data...
map_field_lite.h Loading commit data...
map_field_test.cc Loading commit data...
map_lite_test_util.cc Loading commit data...
map_lite_test_util.h Loading commit data...
map_lite_unittest.proto Loading commit data...
map_proto2_unittest.proto Loading commit data...
map_test.cc Loading commit data...
map_test_util.cc Loading commit data...
map_test_util.h Loading commit data...
map_test_util_impl.h Loading commit data...
map_type_handler.h Loading commit data...
map_unittest.proto Loading commit data...
message.cc Loading commit data...
message.h Loading commit data...
message_lite.cc Loading commit data...
message_lite.h Loading commit data...
message_unittest.cc Loading commit data...
message_unittest.inc Loading commit data...
metadata.h Loading commit data...
metadata_lite.h Loading commit data...
no_field_presence_test.cc Loading commit data...
package_info.h Loading commit data...
preserve_unknown_enum_test.cc Loading commit data...
proto3_arena_lite_unittest.cc Loading commit data...
proto3_arena_unittest.cc Loading commit data...
proto3_lite_unittest.cc Loading commit data...
reflection.h Loading commit data...
reflection_internal.h Loading commit data...
reflection_ops.cc Loading commit data...
reflection_ops.h Loading commit data...
reflection_ops_unittest.cc Loading commit data...
repeated_field.cc Loading commit data...
repeated_field.h Loading commit data...
repeated_field_reflection_unittest.cc Loading commit data...
repeated_field_unittest.cc Loading commit data...
service.cc Loading commit data...
service.h Loading commit data...
source_context.pb.cc Loading commit data...
source_context.pb.h Loading commit data...
source_context.proto Loading commit data...
struct.pb.cc Loading commit data...
struct.pb.h Loading commit data...
struct.proto Loading commit data...
test_messages_proto2.proto Loading commit data...
test_messages_proto3.proto Loading commit data...
test_util.cc Loading commit data...
test_util.h Loading commit data...
test_util.inc Loading commit data...
test_util_lite.cc Loading commit data...
test_util_lite.h Loading commit data...
text_format.cc Loading commit data...
text_format.h Loading commit data...
text_format_unittest.cc Loading commit data...
timestamp.pb.cc Loading commit data...
timestamp.pb.h Loading commit data...
timestamp.proto Loading commit data...
type.pb.cc Loading commit data...
type.pb.h Loading commit data...
type.proto Loading commit data...
unittest.proto Loading commit data...
unittest_arena.proto Loading commit data...
unittest_custom_options.proto Loading commit data...
unittest_drop_unknown_fields.proto Loading commit data...
unittest_embed_optimize_for.proto Loading commit data...
unittest_empty.proto Loading commit data...
unittest_enormous_descriptor.proto Loading commit data...
unittest_import.proto Loading commit data...
unittest_import_lite.proto Loading commit data...
unittest_import_public.proto Loading commit data...
unittest_import_public_lite.proto Loading commit data...
unittest_lazy_dependencies.proto Loading commit data...
unittest_lazy_dependencies_custom_option.proto Loading commit data...
unittest_lazy_dependencies_enum.proto Loading commit data...
unittest_lite.proto Loading commit data...
unittest_lite_imports_nonlite.proto Loading commit data...
unittest_mset.proto Loading commit data...
unittest_mset_wire_format.proto Loading commit data...
unittest_no_arena.proto Loading commit data...
unittest_no_arena_import.proto Loading commit data...
unittest_no_arena_lite.proto Loading commit data...
unittest_no_field_presence.proto Loading commit data...
unittest_no_generic_services.proto Loading commit data...
unittest_optimize_for.proto Loading commit data...
unittest_preserve_unknown_enum.proto Loading commit data...
unittest_preserve_unknown_enum2.proto Loading commit data...
unittest_proto3.proto Loading commit data...
unittest_proto3_arena.proto Loading commit data...
unittest_proto3_arena_lite.proto Loading commit data...
unittest_proto3_lite.proto Loading commit data...
unittest_well_known_types.proto Loading commit data...
unknown_field_set.cc Loading commit data...
unknown_field_set.h Loading commit data...
unknown_field_set_unittest.cc Loading commit data...
well_known_types_unittest.cc Loading commit data...
wire_format.cc Loading commit data...
wire_format.h Loading commit data...
wire_format_lite.cc Loading commit data...
wire_format_lite.h Loading commit data...
wire_format_lite_inl.h Loading commit data...
wire_format_unittest.cc Loading commit data...
wrappers.pb.cc Loading commit data...
wrappers.pb.h Loading commit data...
wrappers.proto Loading commit data...