aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Submit recent changes from internal branch, including "lite mode" forkenton@google.com2009-07-2981-4390/+9601
| | | | | C++ and Java. See CHANGES.txt for more details.
* Down-integrate some code from an internal branch. (More to come.)kenton@google.com2009-07-244-6/+38
|
* Add Swap(), SwapElements(), and RemoveLast() to Reflection. Patch by Scott ↵kenton@google.com2009-06-2511-186/+884
| | | | Stafford.
* Fix build problem with -std=gnu++0x.kenton@google.com2009-06-011-3/+4
|
* Fix final leak (win32 only).kenton@google.com2009-05-182-0/+7
|
* Update version number in trunk.kenton@google.com2009-05-132-7/+7
|
* Fix compile error on Cygwin, where int32 is typedefed to long instead of ↵kenton@google.com2009-05-062-0/+4
| | | | int, and the compiler can't figure out which overload of this method to use in that case.
* Provide ShutdownProtobufLibrary() which frees all startup-allocated objects.kenton@google.com2009-05-0612-43/+254
|
* enable cross-compilingkenton@google.com2009-05-061-0/+10
|
* Set better default CXXFLAGS and don't use optimization when compiling testskenton@google.com2009-05-061-2/+8
| | | | | (takes too long).
* Fix startup crash when statically linking on Mac.temporal2009-04-281-1/+4
|
* Add second run of cpp_unittest which verifies that descriptors are ↵kenton@google.com2009-04-282-10/+40
| | | | constructed lazily. This is accomplished by avoiding any use of descriptors while testing a bunch of other operations, then checking at the end that descriptors have not been constructed.
* Convert some \u escape sequences to UTF-8 because MSVC interprets them ↵kenton@google.com2009-04-281-1/+3
| | | | differently.
* Don't use dll-export declspec on class-nested extensions.kenton@google.com2009-04-281-6/+9
|
* Make building libprotobuf as a DLL work again.kenton@google.com2009-04-286-27/+27
|
* Add test verifying that protoc accepts trailing backslashes on Windows, ↵kenton@google.com2009-04-281-0/+18
| | | | which some users claim doesn't work. Seems to work on my machine.
* That last rev shouldn't have compiled, but apparently did, for some reason. ↵kenton@google.com2009-04-281-1/+1
| | | | Fixed.
* Protect a new death test with GTEST_HAS_DEATH_TEST, since MinGW doesn't ↵kenton@google.com2009-04-281-0/+4
| | | | support it.
* Update MSVC project files for rev 120, and add instructions for compiling ↵kenton@google.com2009-04-272-1/+3
| | | | with zlib.
* Integrate recent changes from Google-internal code tree. See CHANGES.txtkenton@google.com2009-04-2573-4300/+8708
| | | | | for details.
* Work around windows.h #defining GetMessage().kenton@google.com2009-04-223-0/+25
|
* Add missing LIBPROTOBUF_EXPORT.kenton@google.com2009-04-221-1/+1
|
* Update bundled gtest to latest version (1.3.0) and include it as akenton@google.com2009-04-2123-11081/+7
| | | | | | | | | | | | | | | | | nested autoconf package rather than as raw source. This way we can trivially update it again in the future. Actually, this change doesn't even include gtest in protobuf's SVN. Instead, we auto-download it when autogen.sh is invoked. Note that it will be included in release distributions, though. TODO: * Add a configure option to use the system's installed gtest rather than the bundled copy. Apparently the gtest maintainers are working on some general-purpose autoconf macros which will do this automagically. * Update MSVC project files.
* Fix initialization ordering problem in logging code. Based on patch from ↵kenton@google.com2009-04-181-4/+24
| | | | Wink Saville.
* Generate field number constants. Patch from Michael Poole.kenton@google.com2009-04-1813-37/+285
|
* Commit Michael Poole's patch for explicitly constructing all class fields inkenton@google.com2009-04-166-20/+107
| | | | | generated code.
* Commit Brian Olson's gzip stream implementations.kenton@google.com2009-04-169-3/+843
|
* Adds a flag to protoc called --error_format which specifies whatkenton@google.com2009-04-153-6/+94
| | | | | | | convention to use when printing errors. Default is GCC, but Microsoft Visual Studio is another option. This allows errors to be clickable in the MSVS error log.
* Submit files missing from previous submit.kenton@google.com2009-02-101-0/+0
|
* Push out changes from internal codebase.kenton@google.com2009-01-2239-414/+2551
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All Languages * Repeated fields of primitive types (types other that string, group, and nested messages) may now use the option [packed = true] to get a more efficient encoding. In the new encoding, the entire list is written as a single byte blob using the "length-delimited" wire type. Within this blob, the individual values are encoded the same way they would be normally except without a tag before each value (thus, they are tightly "packed"). C++ * UnknownFieldSet now supports STL-like iteration. * Message interface has method ParseFromBoundedZeroCopyStream() which parses a limited number of bytes from an input stream rather than parsing until EOF. Java * Fixed bug where Message.mergeFrom(Message) failed to merge extensions. * Message interface has new method toBuilder() which is equivalent to newBuilderForType().mergeFrom(this). * All enums now implement the ProtocolMessageEnum interface. * Setting a field to null now throws NullPointerException. * Fixed tendency for TextFormat's parsing to overflow the stack when parsing large string values. The underlying problem is with Java's regex implementation (which unfortunately uses recursive backtracking rather than building an NFA). Worked around by making use of possesive quantifiers. Python * Updated RPC interfaces to allow for blocking operation. A client may now pass None for a callback when making an RPC, in which case the call will block until the response is received, and the response object will be returned directly to the caller. This interface change cannot be used in practice until RPC implementations are updated to implement it.
* Update trunk version to 2.0.4-SNAPSHOT.kenton@google.com2008-12-051-1/+1
|
* Support "Solaris 10 using recent Sun Studio".kenton@google.com2008-12-043-0/+3
| | | | | Patch from Monty Taylor <monty.taylor@gmail.com>.
* Add full-system test for custom enum value options. (Previously, only akenton@google.com2008-12-022-2/+7
| | | | | parsing test in parser_unittest.cc existed.)
* * Avoid using pushd/popd in generate_descriptor_proto.sh because they arekenton@google.com2008-12-023-2/+30
| | | | | | | | | | bash-only features, and /bin/sh is not a symlink to bash on all systems. * If an input file is a Windows absolute path (e.g. "C:\foo\bar.proto") and the import path only contains "." (or contains "." but does not contain the file), protoc incorrectly thought that the file was under ".", because it thought that the path was relative (since it didn't start with a slash). This has been fixed.
* * Update version compatibility stuff -- 2.0.3 is in no way compatible withkenton@google.com2008-12-014-11/+11
| | | | | | 2.0.2. * Minor Tru64 fix.
* Integrate changes from internal code.kenton@google.com2008-11-2151-95/+2087
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Support HP C++ on Tru64.kenton@google.com2008-11-1414-51/+109
| | | | | Patch (mostly) by Vincent Choinière <Choiniere.Vincent@hydro.qc.ca>.
* Fix bugs in zero_copy_stream_impl.kenton@google.com2008-11-072-20/+77
| | | | | Patch from Frank Chu.
* Only build tests when running "make check", not "make".kenton@google.com2008-11-071-1/+1
|
* Fixed alignment issue that caused bus errors on platforms like sparc whichkenton@google.com2008-11-072-39/+12
| | | | | | | | | | | | | | | require all memory reads to be aligned. Specifically, it turns out that sizeof(RepeatedField<bool>) is 20 on 64-bit sparc with GCC 3.4.6. This is strange, since one of RepeatedField's members is a pointer, which I thought meant that it had to be 64-bit aligned, which means its size should be a multiple of 64 bits. But, 20 is not a multiple of 8. I don't understand why this is the case, but if this is possible, then DynamicMessage's strategy of sorting fields in descending order by size and then tightly packing doesn't work. To fix this, I got rid of the sort step and instead added code that aligns each field's offset appropriately based on the field's size. Also in this revision: Fix an error message that named a flag incorrectly.
* Simplify some template usage so that older compilers can handle it. (Userskenton@google.com2008-11-061-3/+5
| | | | | report that MSVC 2003 in particular needs this change.)
* Work around GCC 4.3.0 x86_64 compiler bug (seen on Fedora 9).kenton@google.com2008-11-063-178/+120
| | | | | | | | | | | | | | | | | Details: For each message type, protoc generates an array of byte offsets of each of the fields within the message class. These offsets are later used by the reflection implementation. Prior to this revision, the offset arrays were allocated as global variables. Since they were just arrays of ints, they should have been initialized at compile time. Unfortunately, GCC 4.3.0 incorrectly decides that they cannot be initialized at compile time because the values used to initialize the array have type ptrdiff_t, and GCC 4.3.0 does not recognize that it can convert ptrdiff_t to int at compile time. This bug did not seem to exist in previous versions of GCC. Google's compiler team has submitted a fix for this bug back to the GCC project, but we will have to work around it anyway since Fedora 9 shipped with GCC 4.3.0.
* Avoid an "unused parameter" warning when using high warning levels.kenton@google.com2008-10-161-2/+2
|
* Update version number to 2.0.3-SNAPSHOT.kenton@google.com2008-10-162-2/+2
|
* * Fixed template specialization syntax that MSVC 2005 didn't like. Not sure ifkenton@google.com2008-10-031-1/+1
| | | | | | it was valid or not. * Moved UTF-8 coding directive to the right place in reflection_test.py.
* * Fix build on MSVC.kenton@google.com2008-09-304-30/+11
| | | | | * Switch to statically-linked libraries instead of DLLs on MSVC.
* Add file missing from rev 50.kenton@google.com2008-09-241-0/+271
|
* Integrate changes from internal Google-internal branch.kenton@google.com2008-09-24145-2164/+8511
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add file that was mysteriously missing from SVN tree.kenton@google.com2008-09-231-0/+51
|
* Explicitly identify superclass in initializer lists for generated messagekenton@google.com2008-09-232-32/+67
| | | | | classes. This avoids a warning when using GCC's -pedantic option.