| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Handled blocks being too small in arena.cc
|
| |
| |
| |
| |
| |
| | |
When the user passed in a block which was smaller than the Block
structure, this code would blow past the end of the memory and
crash. Check for that condition.
|
|\ \
| | |
| | | |
Generate C# directory hierarchy with new option
|
| | |
| | |
| | |
| | | |
Other changes are due to the well-known types changing without us regenerating.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This introduces a new C# option, base_namespace.
If the option is not specified, the behaviour is as before: no directories are generated.
If the option *is* specified, all C# namespaces must be relative to the base namespace, and the directories are generated relative to that namespace.
Example:
- Any.proto declares csharp_namespace = "Google.Protobuf.WellKnownTypes"
- We build with --csharp_out=Google.Protobuf --csharp_opt=base_namespace=Google.Protobuf
- The Any.cs file is generated in Google.Protobuf/WellKnownTypes (where it currently lives)
We need a change to descriptor.proto before this will all work (it wasn't in the right C# namespace) but that needs the other descriptors to be regenerated too. See next commit...
|
| | | |
|
|\ \ \
| | | |
| | | | |
Add GOOGLE_ATTRIBUTE_NOINLINE to GetArena() and GetMaybeArenaPointer(…
|
|/ / /
| | |
| | |
| | | |
methods. This is to avoid "unresolved link" errors in MSVC 2015 during Release build
|
|\ \ \
| | | |
| | | | |
Fix compile failures building protobuf DLLs on MSVC in Chromium's cod…
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When trying to compile the protobuf code as a DLL, and then compile other DLLs
with generated .pb.cc/h files that reference
InternalMetadataWithArena::InternalMetadataWithArena(Arena*), MSVC gives an
"unresolved external symbol" error. This seems to be due to the function being
simultaneously exported and inline. Moving it out-of-line fixes things.
There are other functions exported and inline as well but de-inlining them
doesn't seem to be necessary to get the build working, and I'd rather de-inline
as few functions as possible.
|
|\ \ \ \
| | | | |
| | | | | |
Refine check for unordered_{map|set} availability.
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
It's not enough to check for C++11 language support, as it's possible for
projects to enable C++11 language and library features independently (e.g.
Chromium currently does this). Instead, explicitly check the library version to
see if it is recent enough to include unordered_{map|set}.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Small fixes
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
It isn't always, which causes problems when trying to put negative
values into the array with C++11.
|
|/ / / / /
| | | | |
| | | | |
| | | | | |
Bazel expects all tests to do this.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Update objc script in generate_descriptor_proto.sh
|
| | |_|/ /
| |/| | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix podspec by adding missing comma
|
|/ / / / / |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Pack/Unpack implementation for Any.
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | | |
We still need the JSON representation, which relies on something like a DescriptorPool to fetch message types from based on the type URL. That will come a bit later.
(The DescriptorPool comment in this commit is just a note which will prove useful if we use DescriptorPool itself.)
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix Python 3.4 cpp implementation
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Fixes the ScalarMapContainer/MessageMapContainer implementations on
Python 3.4, by dynamically allocating their PyTypeObjects using
PyType_FromSpecWithBases, instead of statically allocating them. This is
necessary because Python 3.4+ disallows statically allocating a class
with a dynamically allocated parent.
Signed-off-by: Dan O'Reilly <oreilldf@gmail.com>
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
Rename 'BYTE_SIZE' macro to 'GOOGLE_PROTOBUF_BYTE_SIZE'
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | | |
Xcode raises warning that says "'BYTE_SIZE' macro redefined".
The original 'BYTE_SIZE' macro definition is here, for example:
'/Applications/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/mach/vm_param.h'
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
src/google/protobuf/extension_set.h
|
| |\ \ \ \
| | | | | |
| | | | | | |
Move StringSpaceUsedIncludingSelf to lite library.
|
| | | |/ /
| | |/| |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This came up because Chromium downstream modifies the lite library in a way that
requires this function, but I'm upstreaming it because based on the comments in
repeated_field.h, this ought to allow resolution of an existing hack.
I don't know enough about the protobuf code to feel confident trying to resolve
this hack myself, so I've merely updated the TODO comments.
|
| |\ \ \ \
| | | | | |
| | | | | | |
Remove a static initializer by removing a global of non-POD type.
|
| | | |/ /
| | |/| |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
These are banned by the Google style guide, and Chromium has a hard
no-new-static-initializers policy preventing updating to a new version of
libprotobuf unless this is resolved. This is the first such change, I'll need
to make at least one more in the future.
Luckily, the protobuf source tree already has an alternative to static
initializers in once.h; use that machinery instead.
I defined everything in the .cc file in a blob to replace the old implementation
rather than matching the .h layout precisely; let me know if a different
ordering is preferred. I also eliminated the macro that used to be used here as
spelling everything out only takes one additional line, and the macro didn't
actually handle all details of using a particular member variable, just the
declaration, so it felt a bit error-prone.
|
| |\ \ \ \
| | |_|_|/
| |/| | | |
Fix GOOGLE_PROTOBUF_ATOMICOPS_ERROR syntax error
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
It's not possible to define "#error" inside a define.
It causes 'error: stray ‘#’ in program' compilation error.
Now the define GOOGLE_PROTOBUF_ATOMICOPS_ERROR is the error message
and it's used along the code together "#error".
|
| |\ \ \ \
| | |_|/ /
| |/| | | |
Delete kNanosPerSecond from time.cc.
|
| | | |/
| | |/|
| | | |
| | | | |
This variable is unused, and thus triggers a build warning on MSVC.
|
| |\ \ \
| | | | |
| | | | | |
Fix the no-op definitions of GOOGLE_PREDICT_{TRUE,FALSE}
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Updating to the current protobuf version caused the following build errors in
Chromium when using Clang on Windows:
..\..\third_party\protobuf\src\google/protobuf/stubs/fastmem.h(67,43) : error: equality comparison with extraneous parentheses [-Werror,-Wparentheses-equality]
if (GOOGLE_PREDICT_FALSE(n_rounded_down == 0)) { // n <= 7
~~~~~~~~~~~~~~~^~~~
The problem is that on Windows, GOOGLE_PREDICT_FALSE is #defined to nothing, so
the code expands to 'if ((n_rounded_down == 0))', which Clang warns about.
Clang would not have warned if the extra parentheses came from the macro,
but in this case they don't because the macro is just dropped.
Fix this by making the macros behave as an identity function instead of just
getting dropped.
This is closer to what these macros look like in stubs/port.h internally.
|
| |\ \ \ \
| | |_|/ /
| |/| | | |
Avoid #including system headers from inside a namespace.
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
port.h #includes various headers in order to define byteswap functions, but it
currently does so from inside the google::protobuf namespace. This can cause
bizarre symbol conflicts and other build errors as these headers' contents are
then included inside this namespace.
Instead, #include the relevant headers above the namespace declarations.
|
|\ \ \ \
| | | | |
| | | | | |
Fix for https://github.com/google/protobuf/issues/758
|
| | | | |
| | | | |
| | | | |
| | | | | |
Change-Id: Ifef8a300258214aae8f6b8516fbc61b7335b5724
|
|/ / / /
| | | |
| | | |
| | | | |
Change-Id: I590b34b96c84a3ba6e094a0bd86f153147ade3d3
|
|\ \ \ \
| | | | |
| | | | | |
Fix javadoc errors.
|
|/ / / / |
|
|\ \ \ \
| | | | |
| | | | | |
Fix Protobuf.podspec
|