aboutsummaryrefslogtreecommitdiff
path: root/csharp/src/Google.Protobuf/Reflection
Commit message (Collapse)AuthorAgeFilesLines
* Add file option php_metadata_namespace and ruby_package (#4609)Paul Yang2018-05-111-57/+124
|
* Fix to allow AOT compilers to play nicely with reflectionJon Skeet2018-04-272-18/+47
| | | | | | | | | | | | | | | | | | | With this fix, Unity using IL2CPP should work with one of two approaches: - Call `FileDescriptor.ForceReflectionInitialization<T>` for every enum present in generated code (including oneof case enums) - Ensure that IL2CPP uses the same code for int and any int-based enums The former approach is likely to be simpler, unless IL2CPP changes its default behavior. We *could* potentially generate the code automatically, but that makes me slightly uncomfortable in terms of generating code that's only relevant in one specific scenario. It would be reasonably easy to write a tool (separate from protoc) to generate the code required for any specific set of assemblies, so that Unity users can include it in their application. We can always decide to change to generate it automatically later.
* Write messages to backing field in generated C# cloning code (#4440)Sydney Acksman2018-04-191-10/+10
| | | | | | * Edited MessageFieldGenerator to clone to backing field instead of property * Generated C# proto code
* Deliberately call simple code to avoid Unity linker pruningJon Skeet2018-04-061-0/+19
| | | | | | | | | The SampleEnumMethod method was previously only called via reflection, so the Unity linker thought it could be removed. Ditto the parameterless constructor in ReflectionHelper. This PR should avoid that issue, reducing the work needed by customers to use Google.Protobuf from Unity.
* Address review commentsJon Skeet2018-03-271-5/+13
|
* Work around an "old runtime" issue with reflectionJon Skeet2018-03-271-5/+51
| | | | | | | | | | For oneofs, to get the case, we need to call the property that returns the enum value. We really want it as an int, and modern runtimes allow us to create a delegate which returns an int from the method. (I suspect that the MS runtime has always allowed that.) Old versions of Mono (e.g. used by Unity3d) don't allow that, so we have to convert the enum value to an int via boxing. It's ugly, but it should work.
* Introduce a compatiblity shim to support .NET 3.5 delegate creationJon Skeet2018-03-271-0/+4
|
* Change C# reflection to avoid using expression treesJon Skeet2018-03-272-34/+54
| | | | | | This should work on Unity, Mono and .NET 3.5 as far as I'm aware. It won't work on platforms where reflection itself is prohibited, but that's a non-starter basically.
* Add auto-generated header to C# generated files (#4038)Jan Tattermusch2017-12-131-2/+4
| | | | | | * Add auto-generated header to C# generated files * regenerate C# protos
* Add unknown field support for csharp (#3936)Jie Luo2017-12-131-46/+370
| | | Add unknown field support for csharp
* Regenerated code from previous C# codegen commitJon Skeet2017-12-091-2/+2
| | | | | | With this in place, all tests should pass. Fixes #3725.
* Update descriptor protosJisi Liu2017-10-181-1/+2
|
* Integrated internal changes from GoogleAdam Cozzette2017-09-141-90/+308
|
* Merge master into 3.4.xJisi Liu2017-07-181-59/+122
|\
| * Support PHP generic services (#3269)Matt A2017-07-181-60/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add php_generic_services option * Generate PHP generic services * Respect namespaces for generated PHP services * Test PHP generated services * Rename PHP generator service method doc comment function * Correct phpdoc service method case * Test namespaced PHP generic services * Always use the FQCN for PHP generic service input/output * Add generated_service_test to php test.sh * Add php service test protos to CI * Add php service files to php_EXTRA_DIST * Use Interface suffix for php generic services
| * Add new file option php_namespace. (#3162)Paul Yang2017-06-051-55/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add new file option php_namespace. Use this option to change the namespace of php generated classes. Default is empty. When this option is empty, the package name will be used for determining the namespace. * Uncomment commented tests * Revert gdb test change * Update csharp descriptor. * Add test for empty php_namespace.
* | Update csharp and php descriptorJisi Liu2017-07-181-125/+277
|/
* Fix C++ build for down-integration.Feng Xiao2017-03-291-46/+47
|
* Add file option php_class_prefix (#2849)Paul Yang2017-03-171-56/+88
| | | | This option will be prepended to generated classes of all messages in the containing file.
* There might be duplicated enum values when allow_alias is true. Add ↵Jie Luo2017-02-281-1/+8
| | | | PreferredAlias into OriginalNameAttribute to remove the duplication (#2727)
* Fixes for .NET 3.5 compatibilityJohn Brock2017-02-231-1/+1
| | | | | * Changing DOTNET35 framework symbols in preprocessor directives to the default built-in value of NET35. * Adding extension method StreamExtension.CopyTo for .NET 3.5 because it didn’t exist until .NET 4, and adding associated unit tests.
* Merge 3.2.x branch into master (#2648)Paul Yang2017-01-311-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Support custom options in C#Jon Skeet2017-01-1910-8/+454
| | | | | | | | | | | | This consists of: - Changing the codegen for the fixed set of options protos, to parse unknown fields instead of skipping them - Add a new CustomOptions type in the C# support library - Expose CustomOptions properties from the immutable proto wrappers in the support library Only single-value options are currently supported, and fetching options values requires getting the type right and knowing the field number. Both of these can be addressed at a later time. Fixes #2143, at least as a first pass.
* Merge pull request #2487 from jtattermusch/csharp_leading_whitespaceJan Tattermusch2016-12-131-372/+372
|\ | | | | remove leading whitespace in C# xml comments
| * remove leading whitespace in C# xml commentsJan Tattermusch2016-12-121-372/+372
| |
* | update descriptor.proto's go_packageMichael Darakananda2016-12-071-3/+4
|/ | | | | This change has already been made in google's repo. Replicating the change here to unblock work on genproto.
* Add a swift_prefix file option.Thomas Van Lenten2016-11-301-55/+90
| | | | | | | | Swift generators should default to CamelCasing the proto package and prefixing symbols with that, but this option allows developers to override that behavior with something custom if they desire. Fixes https://github.com/google/protobuf/issues/1833
* Add a "u" suffix to tag numbers in generated codeAdam Cozzette2016-11-221-7/+60
| | | | | | This seems to be necessary to prevent warnings in some compiler configurations, particularly for tag numbers that are too large to fit in a signed 32-bit int.
* Change JSON field name formattingJon Skeet2016-11-031-1/+1
| | | | | | | | | This affects cases with leading capital letters. This breaks compatibility with previous C# releases, but fixes compatibility with other implementations. See #2278 for details.
* Add back removed descriptor field.Bo Yang2016-10-101-58/+91
|
* Bump library veriosn to 3.1Bo Yang2016-10-101-102/+59
|
* Rm check on dependency in the C# reflection API (#2051)Guillaume Turri2016-09-051-12/+1
| | | | | | | | | | | | | | This check adds a few constraints on the way to build a project when we have a proto file which imports another one. In particular, on projects which build both C# and Java, it's easy to end up with exceptions like Expected: included.proto but was src/main/protobuf/included.proto A user may work around this issue, but it may add unnecessary constraints on the layout of the project. According to https://github.com/google/protobuf/commit/f3504cf3b1d456a843e8242fdee9ba0bf2991dc1#diff-ecb0b909ed572381a1c8d1994f09a948R309 it has already been considered to get rid of this check, for similar considerations, and because it doesn't exist in the Java code
* Update generated files.Feng Xiao2016-07-131-3/+3
|
* Changes to generated code from previous commitJon Skeet2016-07-041-112/+682
|
* Adding conditional compiler symbol to support .NET 3.5 (#1713)detlevschwabe2016-06-281-0/+4
| | | | * Adding condition compiler symbol to support .NET 3.5
* Regenerate well-known types for C#Jon Skeet2016-04-201-79/+46
| | | | | (There are documentation changes and new fields in descriptor.proto that have resulted in changes to the serialized descriptor, but no breaking changes for C#.)
* Regenerate all C# code and make it compileJon Skeet2016-04-202-74/+74
| | | | JSON tests fail, as we're not using OriginalNameAttribute yet.
* Add C# codegen changes to enum value names (mostly C++)Jon Skeet2016-04-201-0/+58
| | | | | | | | | | Overview of changes: - A new C#-specific command-line option, legacy_enum_values to revert to the old behavior - When legacy_enum_values isn't specified, we strip the enum name as a prefix, and PascalCase the value name - A new attribute within the C# code so that we can always tell the original in-proto name Regenerating the C# code with legacy_enum_values leads to code which still compiles and works - but there's more still to do.
* Refactoring of FieldDescriptorJon Skeet2016-03-301-61/+39
| | | | | | | | This makes no externally visible behavioral changes. Internally and non-behaviorally: - We use a field (compiler-generated) to store the JsonName to avoid recomputing it repeatedly - The documentation for JsonName is updated to reflect the meaning better - Readonly autoprops and expression-bodied properties used where possible
* Code review fixesalien2016-03-292-4/+2
|
* csharp: add support for the json_name optionalien2016-03-182-0/+8
| | | | | Conflicts: csharp/src/Google.Protobuf/JsonFormatter.cs
* Generated code changes from previous commitJon Skeet2016-02-041-1/+1
|
* Rename Preconditions to ProtoPreconditionsJon Skeet2016-02-042-29/+29
| | | | (Generated code changes in next commit.)
* Generated code for GeneratedCodeInfo changeJon Skeet2016-02-041-65/+375
|
* Rename GeneratedCodeInfo to GeneratedClrTypeInfoJon Skeet2016-02-043-11/+11
| | | | | | | Recently, descriptor.proto gained a GeneratedCodeInfo message, which means the generated code conflicts with our type. Unfortunately this affects codegen as well, although this is a part of the public API which is very unlikely to affect hand-written code. Generated code changes in next commit.
* Allow the original field name (rather than camel-cased) when parsing JSONJon Skeet2016-01-151-3/+15
|
* Generated code changes from previous commit.Jon Skeet2015-12-151-22/+22
|
* Generated code changes for previous commit (basically ↵Jon Skeet2015-11-223-4/+4
| | | | InternalBuildGeneratedFileFrom => FromGeneratedCode)
* Tidy up reflection in advance of attempting to implement DynamicMessage.Jon Skeet2015-11-226-208/+179
| | | | | | | | | There are corner cases where MessageDescriptor.{ClrType,Parser} will return null, and these are now documented. However, normally they *should* be implemented, even for descriptors of for dynamic messages. Ditto FieldDescriptor.Accessor. We'll still need a fair amount of work to implement dynamic messages, but this change means that the public API will be remain intact. Additionally, this change starts making use of C# 6 features in the files that it touches. This is far from exhaustive, and later PRs will have more. Generated code changes coming in the next commit.
* Added the type registry in advance of implementing Any support.Jon Skeet2015-11-211-0/+183
| | | | Biting off just this bit first as I don't need the changes from a previous PR for this part.