Commit Graph

900 Commits

Author SHA1 Message Date
Jisi Liu
5e7c4cb3f6 Remove the comments about iterator validation
As it may be implementation dependent.
2016-05-13 18:12:57 -07:00
Jisi Liu
9f84114864 Merge pull request #1520 from pherl/hashmapvs2008
Bridge vs2008 hashmaps.
2016-05-12 10:34:40 -07:00
Jisi Liu
dbdf6d9085 Bridge vs2008 hashmaps. 2016-05-11 14:59:55 -07:00
Jisi Liu
e8737d8676 Fix the command line interface unittest again
This time move the macro inside namespaces; hopefully will work with the
integration script.
2016-05-10 16:20:08 -07:00
Feng Xiao
76a96d4690 Merge pull request #1499 from beardedN5rd/master
updated README
2016-05-06 15:23:45 -07:00
beardedn5rd
2eb774e602 after comment of Feng Xiao changed the entry to g++ 2016-05-06 22:47:17 +02:00
beardedn5rd
b12f630e81 updated README 2016-05-06 14:49:52 +02:00
Mahmut Ali ÖZKURAN
9b3357ddac Updated README.md
Added relative link to cmake guide.
2016-05-06 10:16:28 +03:00
Feng Xiao
17b6fc31eb Merge pull request #1409 from eeight/fix_enum_corruption
Fix bug with silent message corruption in LITE_RUNTIME.
2016-05-04 10:55:13 -07:00
Jisi Liu
12fdeb9b41 Merge branch 'master' of github.com:google/protobuf 2016-04-28 14:43:08 -07:00
Jisi Liu
cf14183bcd Down integrate from Google internal. 2016-04-28 14:34:59 -07:00
Thomas Van Lenten
18b6a321b5 Proper checking of enum with non zero default
proto2 syntax allows the first enum to have a non zero value. This means any
field using that default has a non zero default without having an explicit
default being set. So when deciding what runtime info is needed, don't rely
on an explicit default, always check that the values aren't zero.

Fixes https://github.com/google/protobuf/issues/1453
2016-04-26 15:15:49 -04:00
Petr Prokhorenkov
f4f9aec52f Fix bug with silent message corruption in LITE_RUNTIME.
A protobuf message will be corrupted in the following scenario:
  1. Use LITE_RUNTIME.
  2. Have an optional enum field following some other field.
  3. Update protocol by adding new values to the enum.
  4. Have an old client parse and serialize a message having enum field
      set to a value the client does not understand.
  5. Field preceeding the enum is now corrupted.

The bug is due to the fact that optimized fallthrough in parser code
does not update variablle 'tag' when jumping to the parser code for the
next field.
2016-04-21 09:27:33 +03:00
Feng Xiao
0ad204845f Merge pull request #1416 from cwhipkey/master
Change protobuf CPP proto generator to support the 'lite' option in
2016-04-20 17:15:16 -07:00
Feng Xiao
f00300d7f0 Merge pull request #1414 from xyzzyz/googletest
Remove googletest.h header from stringprintf.cc
2016-04-20 11:20:34 -07:00
Jon Skeet
f265fb8152 Merge pull request #1401 from jskeet/enum-casing
Enum casing in C#
2016-04-20 09:01:58 +01:00
Jon Skeet
d90d615f71 Attempt to fix AppVeyor build by exporting GetEnumValueName 2016-04-20 03:46:03 +01:00
Jon Skeet
75626ed79c Add C# codegen changes to enum value names (mostly C++)
Overview of changes:
- A new C#-specific command-line option, legacy_enum_values to revert to the old behavior
- When legacy_enum_values isn't specified, we strip the enum name as a prefix, and PascalCase the value name
- A new attribute within the C# code so that we can always tell the original in-proto name

Regenerating the C# code with legacy_enum_values leads to code which still compiles and works - but
there's more still to do.
2016-04-20 03:45:59 +01:00
Jisi Liu
1b0ff34b90 Add missing includes in field mask test 2016-04-19 15:14:31 -07:00
Chad Whipkey
baf52bd79e Change protobuf CPP proto generator to support the 'lite' option in
proto3.

Added a couple unit test proto3 files, for arena_lite and lite. Cloned
the proto3_arena_unittest to test some of the basics of generated code
(and to ensure that the generated proto3 test files are used by some
test).
2016-04-15 09:23:50 -07:00
Adam Michalik
1b912fceee Remove googletest.h header from stringprintf.cc
It doesn't seem to be necessary here, and it pulls other testing headers
during compilation of release protobuf.
2016-04-14 15:54:31 -07:00
Joshua Haberman
814685ca2c Merge pull request #1397 from google/internal-merge
Internal merge
2016-04-11 23:37:42 -07:00
Jon Skeet
2a197b3eb0 Use 0 as the default value for all enums, rather than finding the actual enum value name
This will make it easier to change the enum value names, as it reduces the number of places they're used.
2016-04-11 06:47:43 +01:00
Jon Skeet
0a902ee0ac Fix to csharp_options - initialize internal_access to false. 2016-04-08 09:57:32 +01:00
Josh Haberman
2cd79bf3a8 Removed duplicated operator delete from merge conflict. 2016-04-07 14:26:59 -07:00
Josh Haberman
4465daa57a Merge branch 'master' into internal-merge 2016-04-07 14:10:19 -07:00
Jon Skeet
667f4a6282 Merge pull request #1393 from gvaish/master
Added support for internal_access for C#
2016-04-07 22:05:40 +01:00
Jie Luo
09292d5759 Merge pull request #1392 from anandolee/master
Sync the manually integrate changes in google3/third_party
2016-04-07 11:05:05 -07:00
Gaurav Vaish
a6e39316a7 Added support for internal_access for C# 2016-04-07 10:33:21 -07:00
Jie Luo
c61207492e sync the Manually integrate changes in google3/third_party 2016-04-06 14:32:30 -07:00
Jon Skeet
2a18bb5a33 Add more documentation for csharp_options.h
This also renames generate_directories to base_namespace_specified; generating directories is the
immediate *effect* of specifying a base namespace, but with this change the options reflect what has been
specified rather than the effect. (There may be other effects in the future, of course.)
2016-04-06 10:30:19 +01:00
Jon Skeet
bfd1c84a3d Line-wrapping changes only for C# generator code
This should have no behavioral changes at all.

This doesn't strictly enforce an 80-column limit, but removes the most egregious violations.
The indentation in the C# generator code is inconsistent in general, unfortunately - if we have
any good tools that can be trusted to reformat, I'd be happy to apply them.
2016-04-06 10:17:13 +01:00
Jon Skeet
89719f07a3 Merge pull request #1349 from gvaish/master
Added CLI option internal_access for types (C#)
2016-04-05 20:52:17 +01:00
Gaurav Vaish
74d8b0bebc Added access_level for types
* `csharp_options`: Added `Options` to encapsulate generator options.
   Supported options for now - file_extension, base_namespace
* `{Blah}Generator`: Now accept `Options*` as parameter to constructor
* `csharp_generator.cc`: Parse and populate options
* `Makefile.am`: Added `csharp_options.h`
* `extract_includes.bat.in`: Added `csharp_options.h`

Refactoring code to two commits. This is the first commit
2016-04-05 09:47:11 -07:00
Oleg Vereshko
268ce2818f Added deprecated option handling for objective-c generator 2016-04-04 18:13:30 +03:00
Jisi Liu
cba75ad404 Merge branch 'master' of github.com:google/protobuf 2016-04-01 16:46:49 -07:00
Jisi Liu
89343d87c6 Do not use C++11 unicode escape in unittest.
For fixing MSVC
2016-04-01 16:44:46 -07:00
Jisi Liu
93811ca9f7 Do not let windows.h define min/max macros 2016-04-01 15:55:49 -07:00
Jisi Liu
203bb5eb33 Fix re-definition issue of winsock.h and winsock2.h 2016-03-31 17:38:11 -07:00
Jisi Liu
bc1f2e7e6e Fix WIN32 build for map_test.
stubs/common.h undefines the GetMessage macro introduced in windows.h
map_test however include stubs/common.h before windows.h is transitively
included. This hack force map_test.cc to include windows.h first, so we
have a chance to undefine the GetMessage macro.
2016-03-31 15:17:40 -07:00
Jisi Liu
cbfd9d43c8 Remove export macros for classes nested in a template class. 2016-03-31 14:47:24 -07:00
Jisi Liu
5805c2dfb7 Fix javanano package 2016-03-31 13:50:38 -07:00
Jisi Liu
94aa50ffd6 Fix breakage of referring to table_ in static func
Referencing data member table_ in static functions break certain
platforms. Change it to refer to the declare type void** instead.
2016-03-31 13:18:03 -07:00
Jisi Liu
9e7fa0678d Temporarily disable begin is fast test. 2016-03-31 13:17:45 -07:00
Adam Michalik
955841e620 Replace #include <iostream> with #include <ostream>
iostream is not actually necessary here, and it introduces unnecessary
static initializers.
2016-03-30 12:54:40 -07:00
Jisi Liu
0de06f54bc Merge branch 'master' of github.com:google/protobuf 2016-03-30 11:43:44 -07:00
Jisi Liu
3b3c8abb96 Integrate google internal changes. 2016-03-30 11:39:59 -07:00
Jisi Liu
e164f1083f Use the T() instead of NULL for the default value.
The template can be specialized on primitives, e.g. double, where
converting NULL will trigger a warning.
2016-03-29 15:25:49 -07:00
topillar
64dfb5f80a Update coded_stream.h
fix warning treated as error prevents building on 64-bit windows.
2016-03-22 23:45:41 +08:00
Thomas Van Lenten
79a23c435c Shrink ObjC overhead (generated size and some runtime sizes)
NOTE: This is a binary breaking change as structure sizes have changed size
and/or order.

- Drop capturing field options, no other options were captured and other mobile
  targeted languages don't try to capture this sort information (saved 8
  bytes for every field defined (in static data and again in field descriptor
  instance size data).
- No longer generate/compile in the messages/enums in descriptor.proto. If
  developers need it, they should generate it and compile it in. Reduced the
  overhead of the core library.
- Compute the number of has_bits actually needs to avoid over reserving.
- Let the boolean single fields store via a has_bit to avoid storage, makes
  the common cases of the instance size smaller.
- Reorder some flags and down size the enums to contain the bits needed.
- Reorder the items in the structures to manually ensure they are are packed
  better (especially when generating 64bit code - 8 bytes for every field,
  16 bytes for every extension, instance sizes 8 bytes also).
- Split off the structure initialization so when the default is zero, the
  generated static storage doesn't need to reserve the space. This is batched
  at the message level, so all the fields for the message have to have zero
  defaults to get the saves. By definition all proto3 syntax  files fall into
  this case but it also saves space for the proto2 that use the standard
  defaults. (saves 8 bytes of static data for every field that had a zero
  default)
- Don't track the enums defined by a message. Nothing in the runtime needs it
  and it was just generation and runtime overhead. (saves 8 bytes per enum)
- Ensure EnumDescriptors are started up threadsafe in all cases.
- Split some of the Descriptor initialization into multiple methods so the
  generated code isn't padded with lots of zero/nil args.
- Change how oneof info is feed to the runtime enabling us to generate less
  static data (8 bytes saved per oneof for 64bit).
- Change how enum value informat is capture to pack the data and only decode
  it if it ends up being needed. Avoids padding issues causing bloat of 64bit,
  and removes the needs for extra pointers in addition to the data (just the
  data and one pointer now).
2016-03-17 10:04:21 -04:00