summaryrefslogtreecommitdiff
path: root/src/google/protobuf/extension_set.cc
AgeCommit message (Collapse)Author
2015-05-21down-integrate internal changesBo Yang
2015-02-28Down integrate from Google internal branch for C++ and Java.Jisi Liu
- Maps for C++ lite - C++ Arena optimizations. - Java Lite runtime code size optimization. Change-Id: I7537a4357c1cb385d23f9e8aa7ffdfeefe079f13
2014-12-02Get rid of some build warnings.Feng Xiao
2014-11-10Down-integrate from internal code base.Feng Xiao
2014-10-09DestroyDefaultRepeatedFields is registered using OnShutdown.Antoni Buszta
2014-10-08InitializeDefaultRepeatedFields() allocates memory but does not release it.Antoni Buszta
2014-10-01Replace links to code.google.com/protobuf with ↵Feng Xiao
developers.google.com/protocol-buffers
2014-07-18down integrate to svnjieluo@google.com
2012-09-22Down-integrate from internal branchxiaofeng@google.com
2010-11-02Submit recent changes from internal branch. See CHANGES.txt for more details.liujisi@google.com
2009-12-22Hopefully fix build on Sun Studio.kenton@google.com
2009-12-21Fix build on GCC 3.3/Linux.kenton@google.com
2009-12-18Ensure that 'once' objects are declared using the macro. This is either the ↵temporal
third or fourth time I've screwed this up when down-integrating, because our internal code does not require the macro (it's not portable) and on Linux a pthread_once_t that is zero-initialized just happens to work. So, I only discover the problem when I test on Mac, then kick myself for making the same mistake yet again. No more! This time, I have renamed GoogleOnceType to ProtobufOnceType, thus making the type name differ from our internal code. As a result, if you don't update the decls to use the macros, they won't compile. Hah! Take that, future self!
2009-12-18Fix Cygwin build.kenton@google.com
2009-12-18Massive roll-up of changes. See CHANGES.txt.kenton@google.com
2009-08-01Use the nice macro to declare once-init control objects, like good little ↵temporal
coders should. Otherwise the initialization routines never run on Mac. TODO: Investigate how this was broken.
2009-07-29Submit recent changes from internal branch, including "lite mode" forkenton@google.com
C++ and Java. See CHANGES.txt for more details.
2009-06-25Add Swap(), SwapElements(), and RemoveLast() to Reflection. Patch by Scott ↵kenton@google.com
Stafford.
2009-05-06Provide ShutdownProtobufLibrary() which frees all startup-allocated objects.kenton@google.com
2009-04-25Integrate recent changes from Google-internal code tree. See CHANGES.txtkenton@google.com
for details.
2008-11-21Integrate changes from internal code.kenton@google.com
protoc * Enum values may now have custom options, using syntax similar to field options. * Fixed bug where .proto files which use custom options but don't actually define them (i.e. they import another .proto file defining the options) had to explicitly import descriptor.proto. * Adjacent string literals in .proto files will now be concatenated, like in C. C++ * Generated message classes now have a Swap() method which efficiently swaps the contents of two objects. * All message classes now have a SpaceUsed() method which returns an estimate of the number of bytes of allocated memory currently owned by the object. This is particularly useful when you are reusing a single message object to improve performance but want to make sure it doesn't bloat up too large. * New method Message::SerializeAsString() returns a string containing the serialized data. May be more convenient than calling SerializeToString(string*). * In debug mode, log error messages when string-type fields are found to contain bytes that are not valid UTF-8. * Fixed bug where a message with multiple extension ranges couldn't parse extensions. * Fixed bug where MergeFrom(const Message&) didn't do anything if invoked on a message that contained no fields (but possibly contained extensions). * Fixed ShortDebugString() to not be O(n^2). Durr. * Fixed crash in TextFormat parsing if the first token in the input caused a tokenization error. Java * New overload of mergeFrom() which parses a slice of a byte array instead of the whole thing. * New method ByteString.asReadOnlyByteBuffer() does what it sounds like. * Improved performance of isInitialized() when optimizing for code size. Python * Corrected ListFields() signature in Message base class to match what subclasses actually implement. * Some minor refactoring.
2008-09-24Integrate changes from internal Google-internal branch.kenton@google.com
General * License changed from Apache 2.0 to New BSD. * It is now possible to define custom "options", which are basically annotations which may be placed on definitions in a .proto file. For example, you might define a field option called "foo" like so: import "google/protobuf/descriptor.proto" extend google.protobuf.FieldOptions { optional string foo = 12345; } Then you annotate a field using the "foo" option: message MyMessage { optional int32 some_field = 1 [(foo) = "bar"] } The value of this option is then visible via the message's Descriptor: const FieldDescriptor* field = MyMessage::descriptor()->FindFieldByName("some_field"); assert(field->options().GetExtension(foo) == "bar"); This feature has been implemented and tested in C++ and Java. Other languages may or may not need to do extra work to support custom options, depending on how they construct descriptors. C++ * Fixed some GCC warnings that only occur when using -pedantic. * Improved static initialization code, making ordering more predictable among other things. * TextFormat will no longer accept messages which contain multiple instances of a singular field. Previously, the latter instance would overwrite the former. * Now works on systems that don't have hash_map. Python * Strings now use the "unicode" type rather than the "str" type. String fields may still be assigned ASCII "str" values; they will automatically be converted. * Adding a property to an object representing a repeated field now raises an exception. For example: # No longer works (and never should have). message.some_repeated_field.foo = 1
2008-08-13Integrate recent changes from google3.temporal
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.
2008-07-10Initial checkin.temporal