aboutsummaryrefslogtreecommitdiffhomepage
path: root/objectivec
Commit message (Collapse)AuthorAge
* Fix C++ build for down-integration.Gravatar Feng Xiao2017-03-29
|
* Remove the use of dispatch_once that is heap backed.Gravatar Thomas Van Lenten2017-03-29
| | | | | | | | | Apple recently updated the docs on dispatch_once to point out that the storage for the dispatch_once_t must be static or global, but not something that was ever used before as the implementation doesn't use a memory barrier. So we drop the use and create the semaphore when needed and use an atomic swap deal with any threading races.
* Add support for Xcode 8.3 to the build helper.Gravatar Thomas Van Lenten2017-03-29
|
* Raise the recursion limit to 100 to match other languages.Gravatar Thomas Van Lenten2017-03-28
|
* Document deep copy in the headerGravatar Thomas Van Lenten2017-03-15
|
* Handing threading race resolving methods.Gravatar Thomas Van Lenten2017-03-02
| | | | | | | - Don't prune the extension registry as that can lead to failures when two threads are racing. - If adding the method fails, check and see if it already is bound to decide the return result. Deals with threading races binding the methods.
* Disable static analyzer for message semaphore creation (#2748)Gravatar Sergio Campamá2017-03-01
| | | | Disable static analyzer for message semaphore creation
* Add GPBMessageDropUnknownFieldsRecursively() and tests.Gravatar Thomas Van Lenten2017-02-23
| | | | | GPBMessageDropUnknownFieldsRecursively() is a new helper to drop the unknownFields from a message and all sub messages (in fields or extensions).
* Removes trailing whitespacesGravatar Sergio Campama2017-02-07
|
* Merge 3.2.x branch into master (#2648)Gravatar Paul Yang2017-01-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Down-integrate internal changes to github. * Update conformance test failure list. * Explicitly import used class in nano test to avoid random test fail. * Update _GNUC_VER to use the correct implementation of atomic operation on Mac. * maps_test.js: check whether Symbol is defined before using it (#2524) Symbol is not yet available on older versions of Node.js and so this test fails with them. This change just directly checks whether Symbol is available before we try to use it. * Added well_known_types_embed.cc to CLEANFILES so that it gets cleaned up * Updated Makefile.am to fix out-of-tree builds * Added Bazel genrule for generating well_known_types_embed.cc In pull request #2517 I made this change for the CMake and autotools builds but forgot to do it for the Bazel build. * Update _GNUC_VER to use the correct implementation of atomic operation on Mac. * Add new js file in extra dist. * Bump version number to 3.2.0 * Fixed issue with autoloading - Invalid paths (#2538) * PHP fix int64 decoding (#2516) * fix int64 decoding * fix int64 decoding + tests * Fix int64 decoding on 32-bit machines. * Fix warning in compiler/js/embed.cc embed.cc: In function ‘std::string CEscape(const string&)’: embed.cc:51:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int i = 0; i < str.size(); ++i) { ^ * Fix include in auto-generated well_known_types_embed.cc Restore include style fix (e3da722) that has been trampled by auto-generation of well_known_types_embed.cc * Fixed cross compilations with the Autotools build Pull request #2517 caused cross compilations to start failing, because the js_embed binary was being built to run on the target platform instead of on the build machine. This change updates the Autotools build to use the AX_PROG_CXX_FOR_BUILD macro to find a suitable compiler for the build machine and always use that when building js_embed. * Minor fix for autocreated object repeated fields and maps. - If setting/clearing a repeated field/map that was objects, check the class before checking the autocreator. - Just to be paranoid, don’t mutate within copy/mutableCopy for the autocreated classes to ensure there is less chance of issues if someone does something really crazy threading wise. - Some more tests for the internal AutocreatedArray/AutocreatedDictionary classes to ensure things are working as expected. - Add Xcode 8.2 to the full_mac_build.sh supported list. * Fix generation of extending nested messages in JavaScript (#2439) * Fix generation of extending nested messages in JavaScript * Added missing test8.proto to build * Fix generated code when there is no namespace but there is enum definition. * Decoding unknown field should succeed. * Add embed.cc in src/Makefile.am to fix dist check. * Fixed "make distcheck" for the Autotools build To make the test pass I needed to fix out-of-tree builds and update EXTRA_DIST and CLEANFILES. * Remove redundent embed.cc from src/Makefile.am * Update version number to 3.2.0-rc.1 (#2578) * Change protoc-artifacts version to 3.2.0-rc.1 * Update version number to 3.2.0rc2 * Update change logs for 3.2.0 release. * Update php README * Update upb, fixes some bugs (including a hash table problem). (#2611) * Update upb, fixes some bugs (including a hash table problem). * Ruby: added a test for the previous hash table corruption. Verified that this triggers the bug in the currently released version. * Ruby: bugfix for SEGV. * Ruby: removed old code for dup'ing defs. * Reverting deployment target to 7.0 (#2618) The Protobuf library doesn’t require the 7.1 deployment target so reverting it back to 7.0 * Fix typo that breaks builds on big-endian (#2632) * Bump version number to 3.2.0
* Adds nullability modifiers to resolve Xcode 8.3 warningsGravatar Sergio Campama2017-01-25
|
* Timestamp helper fix, Duration helper cleanup.Gravatar Thomas Van Lenten2017-01-12
| | | | | | | | | - The Timestamp proto does not allow for negative nanos fields, so the seconds must be shifted and a positive nanos then applied. - Tweak the helpers on Duration to make it clear there is no "base" time involved. - Update the unittests for duration and timestamp to cover positive and negative NSTimeIntervals and what their impact is on the protos.
* Revert "Fix Timestamps with dates before the Unix epoch that contain ↵Gravatar Thomas Van Lenten2017-01-12
| | | | fractional seconds."
* Fix Timestamps with dates before the Unix epoch that contain fractional seconds.Gravatar Thomas Van Lenten2017-01-12
| | | | | The Timestamp proto does not allow for negative nanos fields, so the seconds must be shifted and a positive nanos then applied.
* Minor fix for autocreated object repeated fields and maps.Gravatar Thomas Van Lenten2017-01-05
| | | | | | | | | | | - If setting/clearing a repeated field/map that was objects, check the class before checking the autocreator. - Just to be paranoid, don’t mutate within copy/mutableCopy for the autocreated classes to ensure there is less chance of issues if someone does something really crazy threading wise. - Some more tests for the internal AutocreatedArray/AutocreatedDictionary classes to ensure things are working as expected. - Add Xcode 8.2 to the full_mac_build.sh supported list.
* Fixes and expands comments on how to use GPB_ENUM_FWD_DECLAREGravatar Sergio Campama2016-12-14
|
* Xcode 8.1 supportGravatar Thomas Van Lenten2016-12-09
| | | | | | | | - Add entries to objectivec/DevTools/full_mac_build.sh - Support `-quiet` via an option on full_mac_build.sh. NOTE: we don't use this on travis because the lack of output for a long time could cause travis to kill the build (when we get a slow VM). - Update travis config to use newer images.
* Improve ObjC deprecated annotation support.Gravatar Thomas Van Lenten2016-12-08
| | | | | | | | | | | | | | - Check the parent file options for deprecation when deciding to tag Messages and Enums as deprecated. - Within the generated source push/pop the warning for implementing deprecated things around a deprecated class implementation. - Annotate the methods generated for extension fields as deprecated. - Add a testing .proto file that covers deprecated fields, messages, enums, enum values and compile it into the unittests to confirm things compile cleanly. - Add a testing .proto file that uses the file level option to make everything deprecated and compile it into the unittests to confirm things compile cleanly.
* Update README.mdGravatar Samuel Rossoff (of The Ebon Blade)2016-11-17
| | | needed a grave here, not an apostrophy
* Add note about extension use and Coding support.Gravatar Thomas Van Lenten2016-10-31
|
* Adds pushLimit: and popLimit: into GPBCodedInputStream (#2297)Gravatar Sergio Campamá2016-10-27
| | | | Adds pushLimit: and popLimit: into GPBCodedInputStream
* Integrate internal changesGravatar Bo Yang2016-10-10
|
* Update the ObjC projects for Xcode 8Gravatar Thomas Van Lenten2016-10-03
| | | | | | | | | | - Let Xcode 8 update settings on the projects/schemes. - Migrate Swift tests to Swift 3 syntax. - Update the build/test script: - Require Xcode 8 (because of the Swift 3 requirement for tests) - Update the devices to what Xcode 8 has (8.x simulator seem to fail even though they can be downloaded in Xcode 8) - Update the travis images to ones with Xcode 8.
* Use a custom dictionary to avoid NSNumber operations.Gravatar Thomas Van Lenten2016-09-19
| | | | | For the secondary dictionary, use a custom CFDictionary with integer keys to avoid the NSNumber conversions.
* Remove the custom key functions and just use the system provided defaults.Gravatar Thomas Van Lenten2016-09-19
|
* Update the ObjC version checks to support a min and current version.Gravatar Thomas Van Lenten2016-09-15
| | | | | | | | | - Capture the version used to generated. - Check at compile time and runtime that generated code isn't from a newer version, also check that the min version required is also supported. - Keep the old constants/macros/functions to special case the last version that was working so those generated sources still work until we decide otherwise.
* Merge pull request #1970 from thomasvl/objc_any_helpersGravatar Thomas Van Lenten2016-09-09
|\ | | | | Objc any helpers
* \ Merge pull request #2094 from thomasvl/update_wkt_commentsGravatar Thomas Van Lenten2016-09-08
|\ \ | | | | | | Fix error and add note about lossy issues
| * | Fix error and add note about lossy issuesGravatar Thomas Van Lenten2016-09-08
| | |
* | | Support the -Wassign-enum compiler flag. (#2085)Gravatar Sergio Campamá2016-09-08
|/ / | | | | | | Support the -Wassign-enum compiler flag.
| * Add ObjC helpers for Any WKT.Gravatar Thomas Van Lenten2016-09-08
|/ | | | | | | | | | | | | | | - Capture the ObjC prefix used when generating the the file. - Track the containing type on descriptors. - Mark descriptors where the message class name got a suffix added to it. - Expose a fullName property on Descriptors. - Add helpers for packing/unpacking Any messages. - Bump the ObjC runtime version number. Since we added methods and invoke them in the generated code, ensure the code is running against a matching version. Otherwise, someone could compile against headers, but run with a framework that is older and get unknown selector failures. This should trip clearer messaging. Fixes https://github.com/google/protobuf/issues/1674
* Make Root's +extensionRegistry generation smarter.Gravatar Thomas Van Lenten2016-09-01
| | | | | | | At generation time, walk the file's dependencies to see what really contains extensions so we can generate more minimal code that only links together the roots that provided extensions. Gets a bunch of otherwise noop code out of the call flow when the roots are +initialized.
* Support GenerateAll().Gravatar Thomas Van Lenten2016-08-26
| | | | | - Expect calls on GenerateAll() and not Generate(). - Parse the prefix validation file once, and then check all the files.
* Adding casts so that code importing protobug using -Wconversion does not ↵Gravatar Sergio Campama2016-08-16
| | | | generate warnings.
* Fixes extra whitespace on generated comments. (#1950)Gravatar Sergio Campamá2016-08-12
| | | | Fixes extra whitespace on generated comments.
* More complete nil/reset tests within a oneofGravatar Thomas Van Lenten2016-08-12
|
* Fix some constants to be correct for the message class in use.Gravatar Thomas Van Lenten2016-08-12
|
* More explicit tests for nil behaviors on fields.Gravatar Thomas Van Lenten2016-08-12
| | | | | Code already works, but make a bank of tests that call it out so things are very clean in the future just to be safe.
* Record zero for "has" for proto3 if in a oneof.Gravatar Thomas Van Lenten2016-08-11
| | | | | | | If a message is proto3, then the zero values still count as being set one the field is in a oneof. Add tests to confirm oneofs work as expected in both syntaxes.
* Never use strlen on utf8 runs so null characters work.Gravatar Thomas Van Lenten2016-08-09
| | | | | | | | | | | | | | Fixes https://github.com/google/protobuf/issues/1933 Add a new test that forces strings into two different implementations from the NSString class cluster to help confirm we're exercising both paths by which CodedOutputStream will extract data from an NSString. Move the old +load test (that was flawed because the behavior really depends on the type of string from the NSString class cluster); into a unittest that targets the specific case we're adding a behavior confirmation on. As a bonus, improve the TextFormat generation of string characters < 0x20.
* Adds support for appledoc in generated code. (#1928)Gravatar Sergio Campamá2016-08-09
| | | | | | Convert mapping of proto comments to appledoc format so they show up in Xcode and cocoadocs. Fixes https://github.com/google/protobuf/issues/1866
* Migrating documentation of the ObjectiveC runtime code to appledoc. (#1867)Gravatar Sergio Campamá2016-08-08
| | | | | | | | Work for #1866 Migrates all the public class docs over to appledoc format. While Xcode is fine with blank lines in `///` comments, appledoc (used by cocoadocs) isn't and was leaving a bunch of info off the doc pages. The generator still needs to be updated to do this also; that will be a follow up CL.
* Use public methods to fetch oneofs in generated code.Gravatar Thomas Van Lenten2016-07-18
| | | | | | | | When building into frameworks, the generated code doesn't always have direct access to the proto internals. Instead of opening up the access, just use the public method to fetch the correct oneof. Fixes https://github.com/google/protobuf/issues/1789
* Exposes the currently registered extensions for a message and removes the ↵Gravatar Sergio Campamá2016-07-15
| | | | internal sortedExtensionsInUse
* Drop the performace baselines.Gravatar Thomas Van Lenten2016-07-08
| | | | | We weren't really using them, and the nested path causes checkout problems on windows.
* Don't #import the .m files.Gravatar Thomas Van Lenten2016-07-07
| | | | | | | | | As bazel folks are looking at getting auto generation of module maps going and the importing of sources files causes issues there. We were only do it to hack around some of the apple linker behaviors around objc classes and categories, but even that isn't complete and CocoaPods was already doing -ObjC, and developers not using pods could have still needed it to ensure everything was linked anyways; so drop the hack of importing sources.
* add nullable qualifier to nil return typesGravatar Dia Kharrat2016-07-05
| | | | | | Add the `nullable` qualifier to return types of Objective-C methods that can return a nil due to errors. This change makes these methods compatible with the Swift 2 try-catch syntax.
* Fix some failing travis tests.Gravatar Feng Xiao2016-07-01
| | | | | | | 1. Add missing header file to Makefile.am. 2. Re-generate objectivec generated code for well-known types. Change-Id: If28217c701cf8bd739ea0db240e9eee600f23ee7
* Xcode project cleanup/setup.Gravatar Thomas Van Lenten2016-06-29
| | | | | | | | - Correct some cases sources were compiled into the static lib and the tests. - Enable Xcodes code coverage support on the unittests. We aren't complete on coverage, but having the data always there should make it easier to chip away at this going forward. - Drop method in tests that isn't used, wire up a validator in another test.
* 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.