aboutsummaryrefslogtreecommitdiff
path: root/csharp/src/ProtocolBuffers/Collections
Commit message (Collapse)AuthorAgeFilesLines
* First pass at the big rename from ProtocolBuffers to Google.Protobuf.Jon Skeet2015-07-173-1182/+0
| | | | We'll see what I've missed when CI fails...
* Fixes from PR review.Jon Skeet2015-07-171-1/+1
|
* First pass at wrapper types.Jon Skeet2015-07-162-3/+33
| | | | | - We do still generate the message types, as otherwise reflection breaks, even though it doesn't actually use those types. - JSON handling hasn't been implemented yet
* Remove the struct-based iterator for RepeatedField.Jon Skeet2015-07-161-57/+6
| | | | | | We don't use it in the runtime or generated code anywhere now, so the extra small performance boost isn't as critical, and it has some undesirable consequences. The tests have needed to change as iterator block enumerators don't throw when we might expect them to.
* C# cleanup - assorted nitsJan Tattermusch2015-07-151-2/+1
|
* Lots more tests for FieldCodec, MapField, RepeatedFieldJon Skeet2015-07-092-12/+45
| | | | ... and some implementation changes to go with them.
* Implement reflection properly for fields.Jon Skeet2015-07-092-6/+126
| | | | | | | | | | | | | - FieldAccessorTable is now non-generic - We don't have a static field per message type in the umbrella class. (Message descriptors are accessed via the file descriptor.) - Removed the "descriptor assigner" complication from the descriptor fixup; without extensions, we don't need it - MapField implements IDictionary (more tests would be good...) - RepeatedField implements IList (more tests would be good) - Use expression trees to build accessors. (Will need to test this on various platforms... probably need a fallback strategy just using reflection directly.) - Added FieldDescriptor.IsMap - Added tests for reflection with generated messages Changes to generated code coming in next commit.
* Fix copyright lines for all C# code.Jon Skeet2015-06-302-4/+37
| | | | | | Everything should now be consistent - the only difference between files is the year (aside from generated files). Fixes issue #531.
* Tidying up and extra tests.Jon Skeet2015-06-302-4/+5
| | | | This is mostly just making things internal instead of public, removing and reordering a bunch of code in CodedInputStream/CodedOutputStream, and generally tidying up.
* First pass (not yet compiling) at removing all the array handling code from ↵Jon Skeet2015-06-302-77/+115
| | | | | | | Coded*Stream. Prod code works, but some tests are broken. Obviously those need fixing, then more tests, and review benchmarks.
* Remove a lot of code which wasn't needed any more.Jon Skeet2015-06-265-353/+10
|
* Tweaks and more tests for mapsJon Skeet2015-06-262-3/+2
| | | | | | | | | | | | | | | - Change the default message hash code to 1 to be consistent with other code - Change the empty list/map hash code to 0 as "empty map" is equivalent to "no map" - Removed map fields from unittest_proto3.proto - Created map_unittest_proto3.proto which is like map_unittest.proto but proto3-only - Fixed factory methods in FieldCodec highlighted by using all field types :) - Added tests for map serialization: - Extra fields within entries - Entries with value then key - Non-contiguous entries for the same map - Multiple entries for the same key Changes to generated code coming in next commit
* More map tests, and various production code improvements.Jon Skeet2015-06-251-15/+49
| | | | Generated code in next commit.
* First pass at map support.Jon Skeet2015-06-251-0/+400
| | | | More tests required. Generated code in next commit.
* Implement freezing for messages and repeated fields.Jon Skeet2015-06-241-2/+33
| | | | Fixes issue #523.
* Implement Clone.Jon Skeet2015-06-231-0/+30
| | | | Fixes issue #527.
* Use an empty array instead of a null reference for an empty repeated field.Jon Skeet2015-06-191-22/+10
|
* Reimplement RepeatedField<T> using an array as the backing store.Jon Skeet2015-06-121-33/+206
| | | | | | | | | | This is effectively reimplementing List<T>, but with a few advantages: - We know that an empty repeated field is common, so don't allocate an array until we need to - With direct access to the array, we can easily convert enum values to int without boxing - We can relax the restrictions over what happens if the repeated field is modified while iterating, avoiding so much checking This is somewhat risky, in that reimplementing a building block like this is *always* risky, but hey... (The performance benefits are significant...)
* First pass at the mutable API. Quite a bit more to do - in particular, it's ↵Jon Skeet2015-06-098-270/+219
| | | | pretty slow right now.
* Imported protobuf-csharp-port into csharp/ treeJan Tattermusch2015-04-166-0/+718