diff options
author | temporal <temporal@630680e5-0e50-0410-840e-4b1c322b438d> | 2008-08-13 03:15:00 +0000 |
---|---|---|
committer | temporal <temporal@630680e5-0e50-0410-840e-4b1c322b438d> | 2008-08-13 03:15:00 +0000 |
commit | 779f61c6a3ce02a119e28e802f229e61b69b9046 (patch) | |
tree | 9131ef5f0acdc3d708a795fc6703488674741ee0 /src/google/protobuf/descriptor.cc | |
parent | a0f27fcd96c5bf2509ca88cca54f00b78f7b8bc5 (diff) | |
download | protobuf-779f61c6a3ce02a119e28e802f229e61b69b9046.tar.gz protobuf-779f61c6a3ce02a119e28e802f229e61b69b9046.tar.bz2 protobuf-779f61c6a3ce02a119e28e802f229e61b69b9046.zip |
Integrate recent changes from google3.
protoc
- New flags --encode and --decode can be used to convert between protobuf text
format and binary format from the command-line.
- New flag --descriptor_set_out can be used to write FileDescriptorProtos for
all parsed files directly into a single output file. This is particularly
useful if you wish to parse .proto files from programs written in languages
other than C++: just run protoc as a background process and have it output
a FileDescriptorList, then parse that natively.
C++
- Reflection objects are now per-class rather than per-instance. To make this
possible, the Reflection interface had to be changed such that all methods
take the Message instance as a parameter. This change improves performance
significantly in memory-bandwidth-limited use cases, since it makes the
message objects smaller. Note that source-incompatible interface changes
like this will not be made again after the library leaves beta.
Python
- MergeFrom(message) and CopyFrom(message) are now implemented.
- SerializeToString() raises an exception if the message is missing required
fields.
- Code organization improvements.
- Fixed doc comments for RpcController and RpcChannel, which had somehow been
swapped.
Diffstat (limited to 'src/google/protobuf/descriptor.cc')
-rw-r--r-- | src/google/protobuf/descriptor.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/google/protobuf/descriptor.cc b/src/google/protobuf/descriptor.cc index 4485fd43..8b808565 100644 --- a/src/google/protobuf/descriptor.cc +++ b/src/google/protobuf/descriptor.cc @@ -1232,9 +1232,9 @@ namespace { // Used by each of the option formatters. bool RetrieveOptions(const Message &options, vector<string> *option_entries) { option_entries->clear(); - const Message::Reflection *reflection = options.GetReflection(); + const Reflection* reflection = options.GetReflection(); vector<const FieldDescriptor*> fields; - reflection->ListFields(&fields); + reflection->ListFields(options, &fields); for (int i = 0; i < fields.size(); i++) { // Doesn't make sense to have message type fields here if (fields[i]->cpp_type() == FieldDescriptor::CPPTYPE_MESSAGE) { @@ -1243,7 +1243,7 @@ bool RetrieveOptions(const Message &options, vector<string> *option_entries) { int count = 1; bool repeated = false; if (fields[i]->is_repeated()) { - count = reflection->FieldSize(fields[i]); + count = reflection->FieldSize(options, fields[i]); repeated = true; } for (int j = 0; j < count; j++) { |