• 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
Name
Last commit
Last update
benchmarks Loading commit data...
cmake Loading commit data...
conformance Loading commit data...
csharp Loading commit data...
editors Loading commit data...
examples Loading commit data...
java Loading commit data...
javanano Loading commit data...
m4 Loading commit data...
more_tests Loading commit data...
objectivec Loading commit data...
protoc-artifacts Loading commit data...
python Loading commit data...
ruby Loading commit data...
src Loading commit data...
vsprojects Loading commit data...
.gitignore Loading commit data...
.travis.yml Loading commit data...
CHANGES.txt Loading commit data...
CONTRIBUTORS.txt Loading commit data...
INSTALL.txt Loading commit data...
LICENSE Loading commit data...
Makefile.am Loading commit data...
Protobuf.podspec Loading commit data...
README.md Loading commit data...
autogen.sh Loading commit data...
config.h.include Loading commit data...
configure.ac Loading commit data...
generate_descriptor_proto.sh Loading commit data...
post_process_dist.sh Loading commit data...
protobuf-lite.pc.in Loading commit data...
protobuf.pc.in Loading commit data...
travis.sh Loading commit data...