Commit Graph

3775 Commits

Author SHA1 Message Date
Feng Xiao
1bce70dddb Fix compatiblity issues.
Currently some public API methods are defined in GenreatedMessage.java
and they have a generric return type:
  class GeneratedMessage {
    class Builder<BuilderType extends Builder<BuilderType>> {
      public BuilderType setField(...);
      public BuilderType setExtension(...);
    }
  }
With these definitions, the compiled byte code of a callsite will have
a direct reference to GeneratedMessage. For example:
  fooBuilder.setField(...);
becomes:
  ##: invokevirtual // Method Builder.setField:(...)LGeneratedMessage.Builder
  ##: checkcast     // class Builder

This will prevent us from updating generated classes to subclass a
different versioned GeneratedMessageV3 class in the future (we can't do
it in a binary compatible way).

This change addresses the problem by overriding these methods directly
in the generated class:
  class Foo {
    class Builder extends GeneratedMessage.Builder<Builder> {
      public Builder setField(...) {
        return super.setField(...);
      }
    }
  }
After this, fooBuilder.setField(...) will be compiled to:
  ##: invokevirtual // Method Builder.setField:(...)LFoo.Builder

The callsites will no longer reference GeneratedMessage directly and we
can change Foo to subclass GeneratedMessageV3 without breaking binary
compatiblity.

The downside of this change is:
  1. It increases generated code size (though it saves some instructions
     on the callsites).
  2. We can never stop generating these overrides because doing that
     will break binary compatibility.

Change-Id: I879afbbc1325a66324a51565e017143489b06e97
2016-07-14 15:33:45 -07:00
Feng Xiao
0b6825516b Add missing golden test file. 2016-07-14 15:21:10 -07:00
Jon Skeet
e1f146bc4f Merge pull request #1785 from jskeet/merge-csharp
Merge C# changes from master to 3.0.0-beta4
2016-07-14 22:44:49 +01:00
Jon Skeet
b5ce5251fd Move to dotnet cli for building, and .NET Core (netstandard1.0) as target platform (#1727)
This also updates the version number to 3.0.0-beta4
2016-07-14 22:16:35 +01:00
Jon Skeet
5e0de1ebee Remove the overload for Add(RepeatedField<T>)
We now just perform the optimization within AddRange itself.

This is a breaking change in terms of "drop in the DLL", but is
source compatible, which should be fine.
2016-07-14 22:14:51 +01:00
Jon Skeet
2ee1e52380 Optimize AddRange for sequences implementing ICollection
(Also fix a few more C# 6-isms.)
2016-07-14 22:14:51 +01:00
Jon Skeet
b053b9211b Implement RepeatedField.AddRange.
This fixes issue #1730.
2016-07-14 22:14:51 +01:00
Jon Skeet
d9334ea8d9 Improve exception throwing implementation in collections 2016-07-14 22:14:51 +01:00
Jon Skeet
10a8fb4e73 Move to dotnet cli for building, and .NET Core (netstandard1.0) as target platform (#1727)
Move to dotnet cli for building, and .NET Core (netstandard1.0) as target platform

This also updates the version number to 3.0.0-beta4
2016-07-14 22:01:47 +01:00
Feng Xiao
4e0d05138a Merge pull request #1781 from xfxyjwf/update_version
Update version number to 3.0.0-beta-4
2016-07-14 12:59:14 -07:00
Feng Xiao
c2ebdec355 Update version number in AssemblyInfo.cs. 2016-07-14 10:46:24 -07:00
Jisi Liu
8b659b226a Merge pull request #1783 from xfxyjwf/fixlite
Comment out lite conformance test.
2016-07-14 09:34:05 -07:00
Feng Xiao
047a3b4852 Exclude Java lite module from parent pom.xml 2016-07-13 18:09:10 -07:00
Feng Xiao
dd37b992be Comment out lite conformance test.
The 'lite' generator flag is no longer supported.
2016-07-13 16:44:27 -07:00
Feng Xiao
932f94e16e Update version number to 3.0.0-beta-4 2016-07-13 16:08:47 -07:00
Feng Xiao
06a02488ce Add missing LIBPROTOBUF_EXPORT 2016-07-13 16:05:50 -07:00
Feng Xiao
7a7913e442 Add missing LIBPROTOBUF_EXPORT. 2016-07-13 15:45:08 -07:00
Feng Xiao
443eb27c7c Update generated files. 2016-07-13 15:37:29 -07:00
Feng Xiao
9086d96439 Integrate from internal code base. 2016-07-13 13:48:40 -07:00
Jon Skeet
042993b3dd Implement RepeatedField.AddRange (#1733)
* Improve exception throwing implementation in collections

* Implement RepeatedField.AddRange.

This fixes issue #1730.

* Optimize AddRange for sequences implementing ICollection

(Also fix a few more C# 6-isms.)

* Remove the overload for Add(RepeatedField<T>)

We now just perform the optimization within AddRange itself.

This is a breaking change in terms of "drop in the DLL", but is
source compatible, which should be fine.
2016-07-13 11:36:19 +01:00
Feng Xiao
8eb90e380c Merge pull request #1778 from yeswalrus/fix-prerelease-version
Fix a <package>_FIND_VERSION_PRERELEASE being ignored
2016-07-12 16:36:41 -07:00
Walter Gray
5520447a78 Fix a bad variable dereference causing <package>_FIND_VERSION_PRERELEASE to be ignored. 2016-07-12 15:19:32 -07:00
Thomas Van Lenten
70c1ac756d Merge pull request #1776 from thomasvl/fix_dist
Remove the baseline files from the make dist file list.
2016-07-12 11:39:52 -04:00
Thomas Van Lenten
0d079bca76 Remove the baseline files from the make dist file list.
https://github.com/google/protobuf/pull/1762 remove the files, but I forgot to
update Makefile.am to remove them.
2016-07-12 11:35:28 -04:00
Jos Hickson
790e6afb72 Fixed out-of-date documentation for CodedInputStream.ReadEnum. (#1581) 2016-07-10 21:31:35 +01:00
Jon Skeet
3560cc9ede Merge pull request #1702 from lukebakken/csharp-nuget-doc-update
Modify csharp README since there are now two NuGet packages
2016-07-10 21:30:31 +01:00
Jon Skeet
8779cba302 Merge pull request #1764 from jskeet/remove-is-value-type
Remove unnecessary reflection call
2016-07-09 07:16:06 +01:00
Jon Skeet
3df146e198 Remove unnecessary reflection call
This is the only call to TypeExtensions.IsValueType, so we can remove
that method, making the whole type conditionally compiled out for .NET 3.5
2016-07-08 18:21:25 +01:00
Thomas Van Lenten
c404c2a2e3 Merge pull request #1762 from thomasvl/drop_perf_profiles
Drop the performace baselines.
2016-07-08 12:25:13 -04:00
Thomas Van Lenten
8c23655519 Drop the performace baselines.
We weren't really using them, and the nested path causes checkout problems
on windows.
2016-07-08 12:21:53 -04:00
Thomas Van Lenten
8b00675fc8 Merge pull request #1757 from thomasvl/avoid_importing_src
Don't #import the .m files.
2016-07-07 17:27:26 -04:00
Jon Skeet
03d9e096d9 Merge pull request #1735 from jskeet/attribute-placement
Change placement of DebuggerNonUserCodeAttribute
2016-07-07 22:11:22 +01:00
Feng Xiao
c850ebcafa Merge pull request #1758 from dago/pathmax2
Make sure also Solaris x86 gets PATH_MAX
2016-07-07 13:58:11 -07:00
Jon Skeet
e9a7fc837f Remove WriteGeneratedTypeAttributes which is a no-op
This does not affect the generated code.
If we decide we want to apply attributes to generated types, we should start by
just reverting this change.
2016-07-07 20:20:42 +01:00
Dagobert Michelsen
57638d58e1 Make sure also Solaris x86 gets PATH_MAX 2016-07-07 20:36:01 +02:00
Jisi Liu
eaf3451cbb Merge pull request #1753 from xfxyjwf/fixup
Fix problems detected when integrating the code to our internal repo.
2016-07-07 09:19:40 -07:00
Thomas Van Lenten
be0d7f6664 Don't #import the .m files.
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.
2016-07-07 08:45:18 -04:00
Feng Xiao
0d5091ee88 Merge pull request #1742 from ottok/fix-spelling
Fix spelling
2016-07-06 15:44:34 -07:00
Feng Xiao
d84d0ca13e Fix data member declaration order. 2016-07-06 15:38:10 -07:00
Feng Xiao
a29a9c5d49 Don't support global ::string in stringpiece.h 2016-07-06 15:37:27 -07:00
Adam Cozzette
c10938a1d9 Merge pull request #1752 from acozzette/fix-js-tests
Fixed failing JS tests
2016-07-06 14:51:11 -07:00
Adam Cozzette
c64d86ed4f Fixed failing JS tests
A couple of small tweaks were needed to fix test failures that were
inadvertently introduced in the last down integration. I also had to add
the map.js file which was missing.
2016-07-06 14:11:39 -07:00
Thomas Van Lenten
ec4589736e Merge pull request #1712 from dkharrat/swift-error-handling
add nullable qualifier to return types that can be nil, to support Swift 2 try-catch syntax
2016-07-06 10:15:55 -04:00
Dia Kharrat
523bfd4f23 add nullable qualifier to nil return types
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.
2016-07-05 01:30:41 -07:00
Jon Skeet
c53484539c Changes to generated code from previous commit 2016-07-04 08:22:18 +01:00
Jon Skeet
ada0a81a74 Move DebuggerNonUserCodeAttribute to function members
I think this has caught everything.
I've left a stub for attributes to be applied to the types themselves, but we don't currently need anything.

Follow-up commit will include the changes to generated code itself.

Fixes #1671.
2016-07-04 08:22:18 +01:00
Otto Kekäläinen
d2ae496623 Fix spelling error in function ParseTime parameter 2016-07-03 15:32:02 +03:00
Otto Kekäläinen
3808d091f8 Fix spelling in strings and comments 2016-07-03 15:26:04 +03:00
Feng Xiao
cae3b0cbb6 Merge pull request #1704 from lizan/json_parse_options
Add JsonParseOptions to ignore unknown fields
2016-07-01 15:43:37 -07:00
Feng Xiao
02b55d248f Merge pull request #1738 from xfxyjwf/fixbuild
Fix some failing travis tests.
2016-07-01 11:44:39 -07:00