OLD | NEW |
| (Empty) |
1 diff --git a/third_party/protobuf/README.chromium b/third_party/protobuf/README.
chromium | |
2 index 04d1a9b..015dd0f 100644 | |
3 --- a/third_party/protobuf/README.chromium | |
4 +++ b/third_party/protobuf/README.chromium | |
5 @@ -29,6 +29,7 @@ Steps used to create the current version: | |
6 generate_descriptor_proto.sh script in the protobuf root directory for a | |
7 guide. Based on http://crrev.com/62331 and http://crrev.com/173228 . | |
8 03: Convert protobuf_lite to a component. Based on http://crrev.com/179806 . | |
9 + 04: Uninline various functions. Based on http://crrev.com/307332 . | |
10 (3) Generate descriptor_pb2.py using something like the following steps. Make | |
11 sure you've regenerated your buildfiles and will build protoc from the | |
12 newly-modified sources above. | |
13 diff --git a/third_party/protobuf/src/google/protobuf/generated_message_util.cc
b/third_party/protobuf/src/google/protobuf/generated_message_util.cc | |
14 index e8fb398..8b3d037 100644 | |
15 --- a/third_party/protobuf/src/google/protobuf/generated_message_util.cc | |
16 +++ b/third_party/protobuf/src/google/protobuf/generated_message_util.cc | |
17 @@ -60,6 +60,11 @@ void InitEmptyString() { | |
18 OnShutdown(&DeleteEmptyString); | |
19 } | |
20 | |
21 +const ::std::string& GetEmptyString() { | |
22 + ::google::protobuf::GoogleOnceInit(&empty_string_once_init_, &InitEmptyString
); | |
23 + return GetEmptyStringAlreadyInited(); | |
24 +} | |
25 + | |
26 int StringSpaceUsedExcludingSelf(const string& str) { | |
27 const void* start = &str; | |
28 const void* end = &str + 1; | |
29 diff --git a/third_party/protobuf/src/google/protobuf/generated_message_util.h b
/third_party/protobuf/src/google/protobuf/generated_message_util.h | |
30 index 6357e27..ae8196b 100644 | |
31 --- a/third_party/protobuf/src/google/protobuf/generated_message_util.h | |
32 +++ b/third_party/protobuf/src/google/protobuf/generated_message_util.h | |
33 @@ -84,10 +84,7 @@ LIBPROTOBUF_EXPORT inline const ::std::string& GetEmptyString
AlreadyInited() { | |
34 assert(empty_string_ != NULL); | |
35 return *empty_string_; | |
36 } | |
37 -LIBPROTOBUF_EXPORT inline const ::std::string& GetEmptyString() { | |
38 - ::google::protobuf::GoogleOnceInit(&empty_string_once_init_, &InitEmptyString
); | |
39 - return GetEmptyStringAlreadyInited(); | |
40 -} | |
41 +LIBPROTOBUF_EXPORT const ::std::string& GetEmptyString(); | |
42 | |
43 // Defined in generated_message_reflection.cc -- not actually part of the lite | |
44 // library. | |
45 diff --git a/third_party/protobuf/src/google/protobuf/stubs/once.cc b/third_part
y/protobuf/src/google/protobuf/stubs/once.cc | |
46 index 889c647..1d93ddf 100644 | |
47 --- a/third_party/protobuf/src/google/protobuf/stubs/once.cc | |
48 +++ b/third_party/protobuf/src/google/protobuf/stubs/once.cc | |
49 @@ -93,6 +93,13 @@ void GoogleOnceInitImpl(ProtobufOnceType* once, Closure* clos
ure) { | |
50 } | |
51 } | |
52 | |
53 +void GoogleOnceInit(ProtobufOnceType* once, void (*init_func)()) { | |
54 + if (internal::Acquire_Load(once) != ONCE_STATE_DONE) { | |
55 + internal::FunctionClosure0 func(init_func, false); | |
56 + GoogleOnceInitImpl(once, &func); | |
57 + } | |
58 +} | |
59 + | |
60 } // namespace protobuf | |
61 } // namespace google | |
62 | |
63 diff --git a/third_party/protobuf/src/google/protobuf/stubs/once.h b/third_party
/protobuf/src/google/protobuf/stubs/once.h | |
64 index 1f082c3..9522b22 100644 | |
65 --- a/third_party/protobuf/src/google/protobuf/stubs/once.h | |
66 +++ b/third_party/protobuf/src/google/protobuf/stubs/once.h | |
67 @@ -122,12 +122,8 @@ typedef internal::AtomicWord ProtobufOnceType; | |
68 LIBPROTOBUF_EXPORT | |
69 void GoogleOnceInitImpl(ProtobufOnceType* once, Closure* closure); | |
70 | |
71 -inline void GoogleOnceInit(ProtobufOnceType* once, void (*init_func)()) { | |
72 - if (internal::Acquire_Load(once) != ONCE_STATE_DONE) { | |
73 - internal::FunctionClosure0 func(init_func, false); | |
74 - GoogleOnceInitImpl(once, &func); | |
75 - } | |
76 -} | |
77 +LIBPROTOBUF_EXPORT | |
78 +void GoogleOnceInit(ProtobufOnceType* once, void (*init_func)()); | |
79 | |
80 template <typename Arg> | |
81 inline void GoogleOnceInit(ProtobufOnceType* once, void (*init_func)(Arg*), | |
OLD | NEW |