Work around absence of hash_map.
Also, update version numbers to 2.0.2-SNAPSHOT.
This commit is contained in:
parent
4014b9f83f
commit
4410396f11
@ -7,7 +7,7 @@ AC_PREREQ(2.59)
|
||||
# * java/pom.xml
|
||||
# * python/setup.py
|
||||
# * src/google/protobuf/stubs/common.h
|
||||
AC_INIT(protobuf, 2.0.1, protobuf@googlegroups.com)
|
||||
AC_INIT(protobuf, 2.0.2-SNAPSHOT, protobuf@googlegroups.com)
|
||||
|
||||
AC_CONFIG_SRCDIR(src/google/protobuf/message.cc)
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
|
@ -10,7 +10,7 @@
|
||||
</parent>
|
||||
<groupId>com.google.protobuf</groupId>
|
||||
<artifactId>protobuf-java</artifactId>
|
||||
<version>2.0.1</version>
|
||||
<version>2.0.2-SNAPSHOT</version>
|
||||
<packaging>jar</packaging>
|
||||
<name>Protocol Buffer Java API</name>
|
||||
<description>
|
||||
|
@ -102,7 +102,7 @@ if __name__ == '__main__':
|
||||
generate_proto("../src/google/protobuf/descriptor.proto")
|
||||
|
||||
setup(name = 'protobuf',
|
||||
version = '2.0.1',
|
||||
version = '2.0.2-SNAPSHOT',
|
||||
packages = [ 'google' ],
|
||||
namespace_packages = [ 'google' ],
|
||||
test_suite = 'setup.MakeTestSuite',
|
||||
|
@ -55,7 +55,7 @@ nobase_include_HEADERS = \
|
||||
lib_LTLIBRARIES = libprotobuf.la libprotoc.la
|
||||
|
||||
libprotobuf_la_LIBADD = $(PTHREAD_LIBS)
|
||||
libprotobuf_la_LDFLAGS = -version-info 0:0:0
|
||||
libprotobuf_la_LDFLAGS = -version-info 2:0:0
|
||||
libprotobuf_la_SOURCES = \
|
||||
google/protobuf/stubs/common.cc \
|
||||
google/protobuf/stubs/hash.cc \
|
||||
|
@ -7,12 +7,12 @@
|
||||
|
||||
#include <google/protobuf/stubs/common.h>
|
||||
|
||||
#if GOOGLE_PROTOBUF_VERSION < 2000001
|
||||
#if GOOGLE_PROTOBUF_VERSION < 2000002
|
||||
#error This file was generated by a newer version of protoc which is
|
||||
#error incompatible with your Protocol Buffer headers. Please update
|
||||
#error your headers.
|
||||
#endif
|
||||
#if 2000001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
|
||||
#if 2000002 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
|
||||
#error This file was generated by an older version of protoc which is
|
||||
#error incompatible with your Protocol Buffer headers. Please
|
||||
#error regenerate this file with a newer version of protoc.
|
||||
|
@ -65,24 +65,24 @@ namespace internal {
|
||||
|
||||
// The current version, represented as a single integer to make comparison
|
||||
// easier: major * 10^6 + minor * 10^3 + micro
|
||||
#define GOOGLE_PROTOBUF_VERSION 2000001
|
||||
#define GOOGLE_PROTOBUF_VERSION 2000002
|
||||
|
||||
// The minimum library version which works with the current version of the
|
||||
// headers.
|
||||
#define GOOGLE_PROTOBUF_MIN_LIBRARY_VERSION 2000001
|
||||
#define GOOGLE_PROTOBUF_MIN_LIBRARY_VERSION 2000002
|
||||
|
||||
// The minimum header version which works with the current version of
|
||||
// the library. This constant should only be used by protoc's C++ code
|
||||
// generator.
|
||||
static const int kMinHeaderVersionForLibrary = 2000001;
|
||||
static const int kMinHeaderVersionForLibrary = 2000002;
|
||||
|
||||
// The minimum protoc version which works with the current version of the
|
||||
// headers.
|
||||
#define GOOGLE_PROTOBUF_MIN_PROTOC_VERSION 2000001
|
||||
#define GOOGLE_PROTOBUF_MIN_PROTOC_VERSION 2000002
|
||||
|
||||
// The minimum header version which works with the current version of
|
||||
// protoc. This constant should only be used in VerifyVersion().
|
||||
static const int kMinHeaderVersionForProtoc = 2000001;
|
||||
static const int kMinHeaderVersionForProtoc = 2000002;
|
||||
|
||||
// Verifies that the headers and libraries are compatible. Use the macro
|
||||
// below to call this.
|
||||
|
@ -29,15 +29,62 @@
|
||||
#include HASH_MAP_H
|
||||
#include HASH_SET_H
|
||||
#else
|
||||
// TODO(kenton): Deal with non-existence of hash_map somehow. Maybe emulate
|
||||
// it with map?
|
||||
#error "Your STL implementation lacks hash_map and/or hash_set."
|
||||
#define MISSING_HASH
|
||||
#include <map>
|
||||
#include <set>
|
||||
#endif
|
||||
|
||||
namespace google {
|
||||
namespace protobuf {
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#ifdef MISSING_HASH
|
||||
|
||||
// This system doesn't have hash_map or hash_set. Emulate them using map and
|
||||
// set.
|
||||
|
||||
// Make hash<T> be the same as less<T>. Note that everywhere where custom
|
||||
// hash functions are defined in the protobuf code, they are also defined such
|
||||
// that they can be used as "less" functions, which is required by MSVC anyway.
|
||||
template <typename Key>
|
||||
struct hash {
|
||||
// Dummy, just to make derivative hash functions compile.
|
||||
int operator()(const Key& key) {
|
||||
GOOGLE_LOG(FATAL) << "Should never be called.";
|
||||
return 0;
|
||||
}
|
||||
|
||||
inline bool operator()(const Key& a, const Key& b) const {
|
||||
return a < b;
|
||||
}
|
||||
};
|
||||
|
||||
// Make sure char* is compared by value.
|
||||
template <>
|
||||
struct hash<const char*> {
|
||||
// Dummy, just to make derivative hash functions compile.
|
||||
int operator()(const char* key) {
|
||||
GOOGLE_LOG(FATAL) << "Should never be called.";
|
||||
return 0;
|
||||
}
|
||||
|
||||
inline bool operator()(const char* a, const char* b) const {
|
||||
return strcmp(a, b) < 0;
|
||||
}
|
||||
};
|
||||
|
||||
template <typename Key, typename Data,
|
||||
typename HashFcn = hash<Key>,
|
||||
typename EqualKey = int >
|
||||
class hash_map : public std::map<Key, Data, HashFcn> {
|
||||
};
|
||||
|
||||
template <typename Key,
|
||||
typename HashFcn = hash<Key>,
|
||||
typename EqualKey = int >
|
||||
class hash_set : public std::set<Key, HashFcn> {
|
||||
};
|
||||
|
||||
#elif defined(_MSC_VER)
|
||||
|
||||
template <typename Key>
|
||||
struct hash : public HASH_NAMESPACE::hash_compare<Key> {
|
||||
|
Loading…
Reference in New Issue
Block a user