aboutsummaryrefslogtreecommitdiffhomepage
path: root/objectivec/GPBCodedInputStream.m
Commit message (Collapse)AuthorAge
* [objectivec] Fix memory leak of exceptions raised by RaiseException() (#4556)Gravatar Hiroshi Ichikawa2018-04-30
| | | | | | | | | | | | | * Fix memory leak of exceptions raised by RaiseException() Currently exceptions raised by RaiseException() is never deallocated because: * ARC is disabled for this library: https://github.com/google/protobuf/blob/master/BUILD#L913 * It is constructed with `+alloc` but is never `-release`d. This change fixes the issue by using `-[NSException exceptionWithName:...]` instead, which returns an autoreleased instance, so it is deallocated properly. * Fix format.
* Add casts to removed undefined behaviors around shifts.Gravatar Thomas Van Lenten2018-01-31
| | | | | Fixes #4246 Fixes #4247
* Improves coverage of GPBCodedInputStreamGravatar Sergio Campama2017-10-24
|
* Properly error on a tag with field number zero.Gravatar Thomas Van Lenten2017-06-06
|
* Raise the recursion limit to 100 to match other languages.Gravatar Thomas Van Lenten2017-03-28
|
* Adds pushLimit: and popLimit: into GPBCodedInputStream (#2297)Gravatar Sergio Campamá2016-10-27
| | | | Adds pushLimit: and popLimit: into GPBCodedInputStream
* Validate the tag numbers when parsing. (#1725)Gravatar Thomas Van Lenten2016-06-29
| | | | | | | | | | | | | | | 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.
* Improving the granularity parsing errors (#1623)Gravatar Sergio Campamá2016-06-02
| | | | | | | | | Add more context to GPBCodedInputStream failures. Have GPBMessage parsing apis extract out the GPBCodedInputStream information and expose it. Update HeaderDocs with pointers to all error domains/codes. Expand the unittests to cover the full set of errors reported. Fixes https://github.com/google/protobuf/issues/1618
* Add more warnings to for the ObjC runtime buildGravatar Thomas Van Lenten2016-05-25
| | | | | | | | | | | | | | Working on https://github.com/google/protobuf/issues/1599, specifically: - Turn on more warnings that the Xcode UI calls out with individual controls. - Manually add: -Wundef -Wswitch-enum - Manually add and then diable in the unittests because of XCTest's headers: -Wreserved-id-macro -Wdocumentation-unknown-command - Manually add -Wdirect-ivar-access, but disable it for the unittests and in the library code (via #pragmas to suppress it). This is done so proto users can enable the warning.
* Error during parsing for invalid UTF-8 instead of dropping dropping data.Gravatar Thomas Van Lenten2016-04-05
| | | | | | | This seems to be some code evolution side effects. Back when there was a custom string class, we couldn't really error when we finally saw the string was bad so we had to return the empty string, but now that full validation is done up front, it can error out.
* Add -position and -isAtEnd for use when manually parsing input streams.Gravatar Thomas Van Lenten2016-04-01
|
* Drop all use of OSSpinLockGravatar Thomas Van Lenten2015-12-17
| | | | | | | | | | | | | Apple engineers have pointed out that OSSpinLocks are vulnerable to live locking on iOS in cases of priority inversion: . http://mjtsai.com/blog/2015/12/16/osspinlock-is-unsafe/ . https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20151214/000372.html - Use a dispatch_semaphore_t within the extension registry. - Use a dispatch_semaphore_t for protecting autocreation within messages. - Drop the custom/internal GPBString class since we don't have really good numbers to judge the locking replacements and it isn't required. We can always bring it back with real data in the future.
* Set the stream limit to the length of the data.Gravatar Thomas Van Lenten2015-11-23
| | | | - Mark all conformance tests as now passing.
* Beta quality drop of Objective C Support.Gravatar Thomas Van Lenten2015-06-08
| | | | | | | | | | | | | | | - 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.
* Alpha 1 drop of Google's Objective C plugin and runtime support for protobufs.Gravatar Thomas Van Lenten2015-05-06