1. 29 Jun, 2016 1 commit
    • Thomas Van Lenten's avatar
      Validate the tag numbers when parsing. (#1725) · c18aa779
      Thomas Van Lenten authored
      There was a twist code path (that some times showed up due to what happened to
      be in memory in failure cases), that would cast a bogus wire type into the
      enum, and then fall through switch statements.
      
      Resolve this by validating all wire types when parsing tags and throwing the
      error at that point so it can't enter the system.
      
      As added safety, stick in a few asserts for apis that get passed tags to ensure
      they also are only seeing valid data.
      
      Bonus: Tweak the parsing loop to skip some work when we get the end marker
      (zero tag) instead of still looping through all the fields.
      c18aa779
  2. 16 Jun, 2015 1 commit
  3. 08 Jun, 2015 1 commit
    • Thomas Van Lenten's avatar
      Beta quality drop of Objective C Support. · d846b0b0
      Thomas Van Lenten authored
      - Add more to the ObjC dir readme.
      - Merge the ExtensionField and ExtensionDescriptor to reduce overhead.
      - Fix an initialization race.
      - Clean up the Xcode schemes.
      - Remove the class/enum filter.
      - Remove some forced inline that were bloating things without proof of performance wins.
      - Rename some internal types to avoid conflicts with the well know types protos.
      - Drop the use of ApplyFunctions to the compiler/optimizer can do what it wants.
      - Better document some possible future improvements.
      - Add missing support for parsing repeated primitive fields in packed or unpacked forms.
      - Improve -hash.
      - Add *Count for repeated and map<> fields to avoid auto create when checking for them being set.
      d846b0b0
  4. 06 May, 2015 1 commit
  5. 11 Nov, 2014 1 commit
  6. 01 Oct, 2014 1 commit
  7. 22 Oct, 2008 1 commit
  8. 24 Sep, 2008 1 commit
    • kenton@google.com's avatar
      Integrate changes from internal Google-internal branch. · 24bf56fb
      kenton@google.com authored
        General
        * License changed from Apache 2.0 to New BSD.
        * It is now possible to define custom "options", which are basically
          annotations which may be placed on definitions in a .proto file.
          For example, you might define a field option called "foo" like so:
            import "google/protobuf/descriptor.proto"
            extend google.protobuf.FieldOptions {
              optional string foo = 12345;
            }
          Then you annotate a field using the "foo" option:
            message MyMessage {
              optional int32 some_field = 1 [(foo) = "bar"]
            }
          The value of this option is then visible via the message's
          Descriptor:
            const FieldDescriptor* field =
              MyMessage::descriptor()->FindFieldByName("some_field");
            assert(field->options().GetExtension(foo) == "bar");
          This feature has been implemented and tested in C++ and Java.
          Other languages may or may not need to do extra work to support
          custom options, depending on how they construct descriptors.
      
        C++
        * Fixed some GCC warnings that only occur when using -pedantic.
        * Improved static initialization code, making ordering more
          predictable among other things.
        * TextFormat will no longer accept messages which contain multiple
          instances of a singular field.  Previously, the latter instance
          would overwrite the former.
        * Now works on systems that don't have hash_map.
      
        Python
        * Strings now use the "unicode" type rather than the "str" type.
          String fields may still be assigned ASCII "str" values; they will
          automatically be converted.
        * Adding a property to an object representing a repeated field now
          raises an exception.  For example:
            # No longer works (and never should have).
            message.some_repeated_field.foo = 1
      24bf56fb
  9. 14 Aug, 2008 1 commit
  10. 10 Jul, 2008 1 commit