37 lines
1.4 KiB
Diff
37 lines
1.4 KiB
Diff
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*),
|