| unchanged: |
| --- protobuf-cleaned/src/google/protobuf/stubs/once.cc 2015-12-30 13:21:46.000000000 -0800 |
| +++ protobuf-patched/src/google/protobuf/stubs/once.cc 2016-03-31 13:25:32.180017848 -0700 |
| @@ -62,6 +62,13 @@ |
| |
| } // namespace |
| |
| +void GoogleOnceInit(ProtobufOnceType* once, void (*init_func)()) { |
| + if (internal::Acquire_Load(once) != ONCE_STATE_DONE) { |
| + internal::FunctionClosure0 func(init_func, false); |
| + GoogleOnceInitImpl(once, &func); |
| + } |
| +} |
| + |
| void GoogleOnceInitImpl(ProtobufOnceType* once, Closure* closure) { |
| internal::AtomicWord state = internal::Acquire_Load(once); |
| // Fast path. The provided closure was already executed. |
| only in patch2: |
| unchanged: |
| --- protobuf-cleaned/src/google/protobuf/stubs/once.h 2015-12-30 13:21:46.000000000 -0800 |
| +++ protobuf-patched/src/google/protobuf/stubs/once.h 2016-03-31 13:25:35.520013490 -0700 |
| @@ -122,12 +122,8 @@ |
| LIBPROTOBUF_EXPORT |
| void GoogleOnceInitImpl(ProtobufOnceType* once, Closure* closure); |
| |
| -inline void GoogleOnceInit(ProtobufOnceType* once, void (*init_func)()) { |
| - if (internal::Acquire_Load(once) != ONCE_STATE_DONE) { |
| - internal::FunctionClosure0 func(init_func, false); |
| - GoogleOnceInitImpl(once, &func); |
| - } |
| -} |
| +LIBPROTOBUF_EXPORT |
| +void GoogleOnceInit(ProtobufOnceType* once, void (*init_func)()); |
| |
| template <typename Arg> |
| inline void GoogleOnceInit(ProtobufOnceType* once, void (*init_func)(Arg*), |