Commit Graph

210 Commits

Author SHA1 Message Date
dmaclach
3389bd965b Add header need for module maps.
If you make up a module map for Objective C protocol buffers, the compiler will complain about missing a declaration for GPBUnknownFieldSet which is used in this file.
2018-08-06 18:41:22 -04:00
Feng Xiao
2dcd6ae409
Remove/replace travis references (#4953)
* Remove/replace travis references.
2018-07-22 17:14:24 -07:00
Benjamin Barenblat
048f5c26a7 objectivec: Quash -Wself-assign and -Wvla (#4897)
* objectivec: Quash -Wself-assign

* objectivec: Set -Wno-vla when building

Objective-C protobuf uses VLAs for performance reasons. Ensure Clang
doesn’t complain about them.
2018-07-11 13:20:01 -04:00
Sergio Campamá
6933e2f499 Update code to work for Xcode 10b1 (#4729)
* Update code to work for Xcode 10b

* Update README and test scripts to mention that Xcode 7 is no longer supported
2018-06-05 15:14:19 -04:00
leovitch
2804902446 [ObjC] Add ability to introspect list of enum values (#4678)
Added new API to GPBEnumDescriptor to enable introspection of enum values.

Refactored implementation so that this contains a minimum of added code.

Clarified comments regarding behavior in the presence of the alias_allowed option.

Added unit tests for new functionality and for the alias case.
2018-05-29 08:08:00 -04:00
Hiroshi Ichikawa
7d978084ca [objectivec] Fix memory leak of exceptions raised by RaiseException() (#4556)
* 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.
2018-04-30 11:44:41 -04:00
Thomas Van Lenten
8417871a71 Move to Xcode 9.3 which also means a High Sierra image. 2018-04-21 12:04:03 -04:00
Thomas Van Lenten
b59da6d099 Remove the iOS Test App.
The tests can run as what Apple calls a Logic Test (under xctest), which means
it doesn't have to load an full UI App under the simulator, which speeds things
up a fair amount.
2018-04-20 17:26:38 -04:00
Sergio Campama
ce24b8a224 Update Xcode settings 2018-04-06 10:37:14 -04:00
Thomas Van Lenten
e998b8ff66 Add compile test sources for to test include order.
To ensure all headers aren't dependent on other things being imported
before/after them, make a source that just imports each header and add
it to the unittesting target, that way we ensure it can be included on
its own with ordering issues.

Also do this testing with a few generated headers that aren't part of
the library to help ensure the different generated imports needed are
complete.
2018-04-02 09:54:29 -04:00
Thomas Van Lenten
bca797dac9 Trim imports for bundled generated protos.
To avoid a cycle between headers, have the WKTs use minimal imports instead
of using the helper to get everything from the library.

Fixes https://github.com/google/protobuf/issues/4301
Fixes https://github.com/google/protobuf/issues/4403
2018-04-02 09:54:29 -04:00
Adam Cozzette
ed4321d1cb
Merge pull request #4387 from acozzette/down-integrate
Integrated internal changes from Google
2018-03-20 16:14:32 -07:00
Adam Cozzette
b1216d95db Updated checked-in generated code 2018-03-14 11:17:06 -07:00
Felix Jendrusch
1da9ffe394 Check return value on write of raw pointer 2018-03-08 16:20:37 +01:00
Felix Jendrusch
38508e9bbb Add test for failing write of raw pointer to output stream 2018-03-08 16:20:05 +01:00
Thomas Van Lenten
07f023188e Fix up the docs to mention the WKTs generated files also.
Fixes #4277
2018-02-07 10:41:21 -05:00
Thomas Van Lenten
cf016a42e6 Work around strange error with atomic and swift under Xcode 8.3.3.
Haven't been able to make a repo case, but this should "fix" the problem
by avoid it completely.

- Move readOnlySemaphore_ into the .m file so it isn't exposed in any
  header.
- Move GPBGetObjectIvarWithField() also to go with the new limited
  visibility on the readOnlySemaphore_.
2018-01-31 16:57:53 -05:00
Thomas Van Lenten
d570d48648 Don't assume c-strings are 4 byte aligned.
The Undefined Behavior sanitizer flags one part of the unittests for this.
For default values for `bytes` we write a length on the front of a c-string
in the static data, apparently the compiler/linker doesn't always make this
4 byte aligned, so it get flagged for undefined/degraded performance. Avoid
this by using memcpy instead.
2018-01-31 15:40:22 -05:00
Thomas Van Lenten
d83837ded5 Fix to use "nil" instead of "NULL" for objc objects. 2018-01-31 14:24:51 -05:00
Thomas Van Lenten
81aeed082e Work around the static analyzer false report. 2018-01-31 14:24:51 -05:00
Thomas Van Lenten
953adb16ff Add casts to removed undefined behaviors around shifts.
Fixes #4246
Fixes #4247
2018-01-31 12:36:54 -05:00
Thomas Van Lenten
3e1587fd4b Add an explicit import of stdatomic.h.
The generated code for enums needs atomics support, so generate the
import instead of relying on it via transitive imports. This will
make future changes to this likely likely to break generated code
and runtime support are mixed.

Followup to https://github.com/google/protobuf/pull/4184.
2018-01-25 12:18:39 -05:00
Thomas Van Lenten
6fd2ae7e45 Bring back import of OSAtomic.
Followup to https://github.com/google/protobuf/pull/4184, keep the
import to not break any existing generated code that isn't regenerated
when they update to the newer protobuf code.
2018-01-25 12:18:39 -05:00
Jonathan Dierksen
a721bf6d29 Migrate away from deprecated OSAtomic APIs. (#4184)
* Migrate away from deprecated OSAtomic APIs.
2018-01-22 16:26:39 -05:00
Thomas Van Lenten
4588e6e2b9 Force a copy when saving the NSData that came from another. 2018-01-03 13:12:29 -05:00
Thomas Van Lenten
156161dfcd Properly copy maps with string keys but pod values.
Add tests to cover all the common special casing in the runtime code to
ensure things come out correctly.
2018-01-03 11:46:03 -05:00
kvukic
8529f2aee3 Resolved issue #3510. Malformed errorr messages replaced with meaningful description 2017-12-29 11:33:47 -05:00
Thomas Van Lenten
860d693cf7 Add Xcode 9.2 to the testing support
Fixes #4060
2017-12-18 10:36:40 -05:00
Feng Xiao
75eceb8424 Update generated code. 2017-12-12 14:57:34 -08:00
Adam Cozzette
0ba8eea655 Merge branch 'master' into down-integrate 2017-12-01 10:05:19 -08:00
Adam Cozzette
92a7e778e7 Integrated internal changes from Google 2017-12-01 10:05:10 -08:00
Thomas Van Lenten
baed06e694 Small code reorder to maybe make #3893 happy.
Use the ivar for the -open, so hopefully it lines up with the -close
in dealloc and isn't seen as an unbalanced "open".
2017-11-17 12:32:22 -05:00
Thomas Van Lenten
6700f41c4b Travis config cleanups and move ObjC to Xcode 9.1.
Stop having travis build the test matrix and make it explicit so extra
settings are only on the test that need the, this helps make the travis
UI a little cleaner (linux hosted stuff doesn't list an Xcode version),
as well as avoid unneeded requirements limiting the travis pool something
can run on.

Small improvements to objectivec/DevTools/full_mac_build.sh to avoid some
repeated scripting and hopefully make things more reliable work with Xcode
9.x.

Don't mark the iOS tests as able to fail, hopefully with the new settings
they are stable and won't give false signals.

Simplify the case for xcode versions and fixup xcode 9.[0-1].
2017-11-16 21:46:46 -05:00
dmaclach
2b3aa1c294 Add Setter/Getter type verification. (#3880)
Add runtime asserts (that can be disabled in release) that verify
that the types being get/set for messages using the C Api match
the type in the descriptor for the field being get/set.
2017-11-16 08:26:46 -05:00
dmaclach
8537f1e6d5 Fix up warnings from Xcode 9.1 (#3887)
Fix up warnings from Xcode 9.1
2017-11-16 08:24:17 -05:00
Sergio Campama
02129f0a87 Fixes 32bit tests. 2017-11-15 13:14:41 -05:00
Thomas Van Lenten
7417755e40
Merge pull request #3883 from dmaclach/map_optimizations
Reduce size of GPBDictionary by getting rid of class creation methods
2017-11-15 11:52:57 -05:00
Dave MacLachlan
8ae6844cf4 codereview cleanup 2017-11-15 08:49:59 -08:00
Thomas Van Lenten
6552c5af3f
Merge pull request #3884 from dmaclach/unsafe
Simplify getter/setter method implementations
2017-11-15 11:45:32 -05:00
Dave MacLachlan
4ba30923fa code review cleanup 2017-11-15 08:41:29 -08:00
Dave MacLachlan
949596ea32 Simplify getter/setter method implementations
Remove unnecessary retain/releases for GPBFieldDescriptors when
creating implementations with blocks. The descriptors do not need
to be memory managed because they are essentially global constructs
that are guaranteed to be around the lifetime of the app.
2017-11-14 15:58:22 -08:00
Dave MacLachlan
9d7f313372 Reduce size of GPBDictionary by getting rid of class creation methods 2017-11-14 15:37:28 -08:00
Dave MacLachlan
37a6672c31 Remove unreferenced 'GPBMessageSignatureProtocol' class.
Remove unreferenced 'GPBMessageSignatureProtocol' class that is just taking up
space in the Objective C runtime information by hanging the protocol it needs to
declare off of GPBRootObject instead.

Small binary size reduction, but more importantly a removal of a class that
appears to be unused when statically analyzed.
2017-11-14 15:16:04 -08:00
Thomas Van Lenten
1f57e540ac When comparing message, require them to have the same descriptor.
This will cover someone subclassing the message, and also handles
something crazy like someone comparing to a raw NSObject.
2017-11-03 12:49:28 -04:00
xuwei-k
05b56d01c1 update joda-time javadoc url 2017-10-30 17:48:54 +09:00
Sergio Campama
b1f954e639 Improves coverage of GPBCodedInputStream 2017-10-24 10:44:41 -04:00
Jisi Liu
ecf2957106 Update descriptor protos 2017-10-18 14:21:22 -07:00
Thomas Van Lenten
a274c67caf Build out more complete code coverage in the tests. 2017-10-03 11:54:44 -04:00
Thomas Van Lenten
9477123538 Let Xcode 9 update project/scheme settings. 2017-10-03 09:56:02 -04:00
Thomas Van Lenten
4207066c35 Merge pull request #3710 from thomasvl/xcode9
Add Xcode 9 support to the helper script.
2017-10-02 20:14:50 -04:00