| Index: third_party/protobuf/src/google/protobuf/extension_set.cc | 
| diff --git a/third_party/protobuf/src/google/protobuf/extension_set.cc b/third_party/protobuf/src/google/protobuf/extension_set.cc | 
| index 52daa4aa4229ddb9b43703446618e9890dcde45a..9afb236147c0cfd60c4d60b5d3bd55a833052161 100644 | 
| --- a/third_party/protobuf/src/google/protobuf/extension_set.cc | 
| +++ b/third_party/protobuf/src/google/protobuf/extension_set.cc | 
| @@ -46,12 +46,6 @@ namespace google { | 
| namespace protobuf { | 
| namespace internal { | 
|  | 
| -// Registry stuff. | 
| -typedef hash_map<pair<const MessageLite*, int>, ExtensionInfo> | 
| -    ExtensionRegistry; | 
| -extern ExtensionRegistry* cr_registry_; | 
| -extern ProtobufOnceType cr_registry_init_; | 
| - | 
| namespace { | 
|  | 
| inline WireFormatLite::FieldType real_type(FieldType type) { | 
| @@ -81,13 +75,19 @@ inline bool is_packable(WireFormatLite::WireType type) { | 
| return false; | 
| } | 
|  | 
| +// Registry stuff. | 
| +typedef hash_map<pair<const MessageLite*, int>, | 
| +                 ExtensionInfo> ExtensionRegistry; | 
| +ExtensionRegistry* registry_ = NULL; | 
| +GOOGLE_PROTOBUF_DECLARE_ONCE(registry_init_); | 
| + | 
| void DeleteRegistry() { | 
| -  delete cr_registry_; | 
| -  cr_registry_ = NULL; | 
| +  delete registry_; | 
| +  registry_ = NULL; | 
| } | 
|  | 
| void InitRegistry() { | 
| -  cr_registry_ = new ExtensionRegistry; | 
| +  registry_ = new ExtensionRegistry; | 
| OnShutdown(&DeleteRegistry); | 
| } | 
|  | 
| @@ -95,9 +95,9 @@ void InitRegistry() { | 
| // safety. | 
| void Register(const MessageLite* containing_type, | 
| int number, ExtensionInfo info) { | 
| -  ::google::protobuf::GoogleOnceInit(&cr_registry_init_, &InitRegistry); | 
| +  ::google::protobuf::GoogleOnceInit(®istry_init_, &InitRegistry); | 
|  | 
| -  if (!InsertIfNotPresent(cr_registry_, std::make_pair(containing_type, number), | 
| +  if (!InsertIfNotPresent(registry_, std::make_pair(containing_type, number), | 
| info)) { | 
| GOOGLE_LOG(FATAL) << "Multiple extension registrations for type \"" | 
| << containing_type->GetTypeName() | 
| @@ -107,10 +107,9 @@ void Register(const MessageLite* containing_type, | 
|  | 
| const ExtensionInfo* FindRegisteredExtension( | 
| const MessageLite* containing_type, int number) { | 
| -  return (cr_registry_ == NULL) | 
| +  return (registry_ == NULL) | 
| ? NULL | 
| -             : FindOrNull(*cr_registry_, | 
| -                          std::make_pair(containing_type, number)); | 
| +             : FindOrNull(*registry_, std::make_pair(containing_type, number)); | 
| } | 
|  | 
| }  // namespace | 
| @@ -1749,45 +1748,68 @@ void ExtensionSet::Extension::Free() { | 
| // ================================================================== | 
| // Default repeated field instances for iterator-compatible accessors | 
|  | 
| +GOOGLE_PROTOBUF_DECLARE_ONCE(repeated_primitive_generic_type_traits_once_init_); | 
| +GOOGLE_PROTOBUF_DECLARE_ONCE(repeated_string_type_traits_once_init_); | 
| +GOOGLE_PROTOBUF_DECLARE_ONCE(repeated_message_generic_type_traits_once_init_); | 
| + | 
| void RepeatedPrimitiveGenericTypeTraits::InitializeDefaultRepeatedFields() { | 
| -  cr_default_repeated_field_int32_ = new RepeatedField<int32>; | 
| -  cr_default_repeated_field_int64_ = new RepeatedField<int64>; | 
| -  cr_default_repeated_field_uint32_ = new RepeatedField<uint32>; | 
| -  cr_default_repeated_field_uint64_ = new RepeatedField<uint64>; | 
| -  cr_default_repeated_field_double_ = new RepeatedField<double>; | 
| -  cr_default_repeated_field_float_ = new RepeatedField<float>; | 
| -  cr_default_repeated_field_bool_ = new RepeatedField<bool>; | 
| +  default_repeated_field_int32_ = new RepeatedField<int32>; | 
| +  default_repeated_field_int64_ = new RepeatedField<int64>; | 
| +  default_repeated_field_uint32_ = new RepeatedField<uint32>; | 
| +  default_repeated_field_uint64_ = new RepeatedField<uint64>; | 
| +  default_repeated_field_double_ = new RepeatedField<double>; | 
| +  default_repeated_field_float_ = new RepeatedField<float>; | 
| +  default_repeated_field_bool_ = new RepeatedField<bool>; | 
| OnShutdown(&DestroyDefaultRepeatedFields); | 
| } | 
|  | 
| void RepeatedPrimitiveGenericTypeTraits::DestroyDefaultRepeatedFields() { | 
| -  delete cr_default_repeated_field_int32_; | 
| -  delete cr_default_repeated_field_int64_; | 
| -  delete cr_default_repeated_field_uint32_; | 
| -  delete cr_default_repeated_field_uint64_; | 
| -  delete cr_default_repeated_field_double_; | 
| -  delete cr_default_repeated_field_float_; | 
| -  delete cr_default_repeated_field_bool_; | 
| +  delete default_repeated_field_int32_; | 
| +  delete default_repeated_field_int64_; | 
| +  delete default_repeated_field_uint32_; | 
| +  delete default_repeated_field_uint64_; | 
| +  delete default_repeated_field_double_; | 
| +  delete default_repeated_field_float_; | 
| +  delete default_repeated_field_bool_; | 
| } | 
|  | 
| void RepeatedStringTypeTraits::InitializeDefaultRepeatedFields() { | 
| -  cr_default_repeated_field_ = new RepeatedFieldType; | 
| +  default_repeated_field_ = new RepeatedFieldType; | 
| OnShutdown(&DestroyDefaultRepeatedFields); | 
| } | 
|  | 
| void RepeatedStringTypeTraits::DestroyDefaultRepeatedFields() { | 
| -  delete cr_default_repeated_field_; | 
| +  delete default_repeated_field_; | 
| } | 
|  | 
| void RepeatedMessageGenericTypeTraits::InitializeDefaultRepeatedFields() { | 
| -  cr_default_repeated_field_ = new RepeatedFieldType; | 
| +  default_repeated_field_ = new RepeatedFieldType; | 
| OnShutdown(&DestroyDefaultRepeatedFields); | 
| } | 
|  | 
| void RepeatedMessageGenericTypeTraits::DestroyDefaultRepeatedFields() { | 
| -  delete cr_default_repeated_field_; | 
| +  delete default_repeated_field_; | 
| } | 
|  | 
| +const RepeatedField<int32>* | 
| +RepeatedPrimitiveGenericTypeTraits::default_repeated_field_int32_ = NULL; | 
| +const RepeatedField<int64>* | 
| +RepeatedPrimitiveGenericTypeTraits::default_repeated_field_int64_ = NULL; | 
| +const RepeatedField<uint32>* | 
| +RepeatedPrimitiveGenericTypeTraits::default_repeated_field_uint32_ = NULL; | 
| +const RepeatedField<uint64>* | 
| +RepeatedPrimitiveGenericTypeTraits::default_repeated_field_uint64_ = NULL; | 
| +const RepeatedField<double>* | 
| +RepeatedPrimitiveGenericTypeTraits::default_repeated_field_double_ = NULL; | 
| +const RepeatedField<float>* | 
| +RepeatedPrimitiveGenericTypeTraits::default_repeated_field_float_ = NULL; | 
| +const RepeatedField<bool>* | 
| +RepeatedPrimitiveGenericTypeTraits::default_repeated_field_bool_ = NULL; | 
| +const RepeatedStringTypeTraits::RepeatedFieldType* | 
| +RepeatedStringTypeTraits::default_repeated_field_ = NULL; | 
| +const RepeatedMessageGenericTypeTraits::RepeatedFieldType* | 
| +RepeatedMessageGenericTypeTraits::default_repeated_field_ = NULL; | 
| + | 
| }  // namespace internal | 
| }  // namespace protobuf | 
| }  // namespace google | 
|  |