1. 17 Aug, 2019 1 commit
  2. 12 Mar, 2019 1 commit
  3. 19 Dec, 2017 1 commit
  4. 09 Dec, 2017 1 commit
  5. 14 Jul, 2016 3 commits
  6. 13 Jul, 2016 1 commit
    • Jon Skeet's avatar
      Implement RepeatedField.AddRange (#1733) · 042993b3
      Jon Skeet authored
      * Improve exception throwing implementation in collections
      
      * Implement RepeatedField.AddRange.
      
      This fixes issue #1730.
      
      * Optimize AddRange for sequences implementing ICollection
      
      (Also fix a few more C# 6-isms.)
      
      * Remove the overload for Add(RepeatedField<T>)
      
      We now just perform the optimization within AddRange itself.
      
      This is a breaking change in terms of "drop in the DLL", but is
      source compatible, which should be fine.
      042993b3
  7. 01 Oct, 2015 1 commit
    • Jon Skeet's avatar
      Support ToString in RepeatedField and MapField. · 9ed6d4da
      Jon Skeet authored
      This changes how we approach JSON formatting in general - instead of looking  at the field a value came from, we just look at the type of the value. It's possible this *could* be slightly inefficient, but if we start caring about JSON performance deeply, we'll probably want to rewrite all of this anyway. It's definitely simpler this way.
      
      When we support dynamic messages, we'll need to modify JsonFormatter to handle enum values, as they won't come be "real" .NET enums at that point. It shouldn't be hard to do though.
      9ed6d4da
  8. 05 Aug, 2015 1 commit
  9. 03 Aug, 2015 1 commit
  10. 30 Jul, 2015 1 commit
  11. 17 Jul, 2015 1 commit
  12. 16 Jul, 2015 1 commit
    • Jon Skeet's avatar
      Remove the struct-based iterator for RepeatedField. · 78b452b7
      Jon Skeet authored
      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.
      78b452b7
  13. 09 Jul, 2015 1 commit
  14. 30 Jun, 2015 1 commit
    • Jon Skeet's avatar
      Tidying up and extra tests. · f34d37a3
      Jon Skeet authored
      This is mostly just making things internal instead of public, removing and reordering a bunch of code in CodedInputStream/CodedOutputStream, and generally tidying up.
      f34d37a3
  15. 25 Jun, 2015 1 commit
  16. 24 Jun, 2015 1 commit
  17. 12 Jun, 2015 1 commit
    • Jon Skeet's avatar
      Reimplement RepeatedField<T> using an array as the backing store. · 7532f025
      Jon Skeet authored
      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...)
      7532f025
  18. 09 Jun, 2015 1 commit