Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
P
protobuf
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
protobuf
Commits
0087da9d
Commit
0087da9d
authored
9 years ago
by
Feng Xiao
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master' into beta-1
Conflicts: src/google/protobuf/extension_set.h
parents
cee703d7
f0640b5a
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
109 additions
and
96 deletions
+109
-96
extension_set.cc
src/google/protobuf/extension_set.cc
+55
-54
extension_set.h
src/google/protobuf/extension_set.h
+23
-9
generated_message_reflection.cc
src/google/protobuf/generated_message_reflection.cc
+0
-12
generated_message_util.cc
src/google/protobuf/generated_message_util.cc
+12
-0
generated_message_util.h
src/google/protobuf/generated_message_util.h
+0
-6
repeated_field.h
src/google/protobuf/repeated_field.h
+2
-1
atomicops.h
src/google/protobuf/stubs/atomicops.h
+5
-5
port.h
src/google/protobuf/stubs/port.h
+12
-8
time.cc
src/google/protobuf/stubs/time.cc
+0
-1
No files found.
src/google/protobuf/extension_set.cc
View file @
0087da9d
...
...
@@ -34,7 +34,6 @@
#include <google/protobuf/stubs/hash.h>
#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/once.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/message_lite.h>
#include <google/protobuf/io/coded_stream.h>
...
...
@@ -1747,66 +1746,68 @@ void ExtensionSet::Extension::Free() {
// ==================================================================
// Default repeated field instances for iterator-compatible accessors
const
RepeatedStringTypeTraits
::
RepeatedFieldType
*
RepeatedStringTypeTraits
::
default_repeated_field_
=
NULL
;
GOOGLE_PROTOBUF_DECLARE_ONCE
(
repeated_primitive_generic_type_traits_once_init_
);
GOOGLE_PROTOBUF_DECLARE_ONCE
(
repeated_string_type_traits_once_init_
);
GOOGLE_PROTOBUF_DECLARE_ONCE
(
repeated_message_generic_type_traits_once_init_
);
const
RepeatedMessageGenericTypeTraits
::
RepeatedFieldType
*
RepeatedMessageGenericTypeTraits
::
default_repeated_field_
=
NULL
;
void
RepeatedPrimitiveGenericTypeTraits
::
InitializeDefaultRepeatedFields
()
{
default_repeated_field_int32_
=
new
RepeatedField
<
int32
>
;
default_repeated_field_int64_
=
new
RepeatedField
<
int64
>
;
default_repeated_field_uint32_
=
new
RepeatedField
<
uint32
>
;
default_repeated_field_uint64_
=
new
RepeatedField
<
uint64
>
;
default_repeated_field_double_
=
new
RepeatedField
<
double
>
;
default_repeated_field_float_
=
new
RepeatedField
<
float
>
;
default_repeated_field_bool_
=
new
RepeatedField
<
bool
>
;
OnShutdown
(
&
DestroyDefaultRepeatedFields
);
}
void
RepeatedPrimitiveGenericTypeTraits
::
DestroyDefaultRepeatedFields
()
{
delete
default_repeated_field_int32_
;
delete
default_repeated_field_int64_
;
delete
default_repeated_field_uint32_
;
delete
default_repeated_field_uint64_
;
delete
default_repeated_field_double_
;
delete
default_repeated_field_float_
;
delete
default_repeated_field_bool_
;
}
#define PROTOBUF_DEFINE_DEFAULT_REPEATED(TYPE) \
const RepeatedField<TYPE>* \
RepeatedPrimitiveGenericTypeTraits::default_repeated_field_##TYPE##_ = NULL;
void
RepeatedStringTypeTraits
::
InitializeDefaultRepeatedFields
()
{
default_repeated_field_
=
new
RepeatedFieldType
;
OnShutdown
(
&
DestroyDefaultRepeatedFields
);
}
PROTOBUF_DEFINE_DEFAULT_REPEATED
(
int32
)
PROTOBUF_DEFINE_DEFAULT_REPEATED
(
int64
)
PROTOBUF_DEFINE_DEFAULT_REPEATED
(
uint32
)
PROTOBUF_DEFINE_DEFAULT_REPEATED
(
uint64
)
PROTOBUF_DEFINE_DEFAULT_REPEATED
(
double
)
PROTOBUF_DEFINE_DEFAULT_REPEATED
(
float
)
PROTOBUF_DEFINE_DEFAULT_REPEATED
(
bool
)
void
RepeatedStringTypeTraits
::
DestroyDefaultRepeatedFields
()
{
delete
default_repeated_field_
;
}
#undef PROTOBUF_DEFINE_DEFAULT_REPEATED
void
RepeatedMessageGenericTypeTraits
::
InitializeDefaultRepeatedFields
()
{
default_repeated_field_
=
new
RepeatedFieldType
;
OnShutdown
(
&
DestroyDefaultRepeatedFields
);
}
struct
StaticDefaultRepeatedFieldsInitializer
{
StaticDefaultRepeatedFieldsInitializer
()
{
InitializeDefaultRepeatedFields
();
OnShutdown
(
&
DestroyDefaultRepeatedFields
);
}
}
static_repeated_fields_initializer
;
void
InitializeDefaultRepeatedFields
()
{
RepeatedStringTypeTraits
::
default_repeated_field_
=
new
RepeatedStringTypeTraits
::
RepeatedFieldType
;
RepeatedMessageGenericTypeTraits
::
default_repeated_field_
=
new
RepeatedMessageGenericTypeTraits
::
RepeatedFieldType
;
RepeatedPrimitiveGenericTypeTraits
::
default_repeated_field_int32_
=
new
RepeatedField
<
int32
>
;
RepeatedPrimitiveGenericTypeTraits
::
default_repeated_field_int64_
=
new
RepeatedField
<
int64
>
;
RepeatedPrimitiveGenericTypeTraits
::
default_repeated_field_uint32_
=
new
RepeatedField
<
uint32
>
;
RepeatedPrimitiveGenericTypeTraits
::
default_repeated_field_uint64_
=
new
RepeatedField
<
uint64
>
;
RepeatedPrimitiveGenericTypeTraits
::
default_repeated_field_double_
=
new
RepeatedField
<
double
>
;
RepeatedPrimitiveGenericTypeTraits
::
default_repeated_field_float_
=
new
RepeatedField
<
float
>
;
RepeatedPrimitiveGenericTypeTraits
::
default_repeated_field_bool_
=
new
RepeatedField
<
bool
>
;
}
void
DestroyDefaultRepeatedFields
()
{
delete
RepeatedStringTypeTraits
::
default_repeated_field_
;
delete
RepeatedMessageGenericTypeTraits
::
default_repeated_field_
;
delete
RepeatedPrimitiveGenericTypeTraits
::
default_repeated_field_int32_
;
delete
RepeatedPrimitiveGenericTypeTraits
::
default_repeated_field_int64_
;
delete
RepeatedPrimitiveGenericTypeTraits
::
default_repeated_field_uint32_
;
delete
RepeatedPrimitiveGenericTypeTraits
::
default_repeated_field_uint64_
;
delete
RepeatedPrimitiveGenericTypeTraits
::
default_repeated_field_double_
;
delete
RepeatedPrimitiveGenericTypeTraits
::
default_repeated_field_float_
;
delete
RepeatedPrimitiveGenericTypeTraits
::
default_repeated_field_bool_
;
void
RepeatedMessageGenericTypeTraits
::
DestroyDefaultRepeatedFields
()
{
delete
default_repeated_field_
;
}
const
RepeatedField
<
int32
>*
RepeatedPrimitiveGenericTypeTraits
::
default_repeated_field_int32_
=
NULL
;
const
RepeatedField
<
int64
>*
RepeatedPrimitiveGenericTypeTraits
::
default_repeated_field_int64_
=
NULL
;
const
RepeatedField
<
uint32
>*
RepeatedPrimitiveGenericTypeTraits
::
default_repeated_field_uint32_
=
NULL
;
const
RepeatedField
<
uint64
>*
RepeatedPrimitiveGenericTypeTraits
::
default_repeated_field_uint64_
=
NULL
;
const
RepeatedField
<
double
>*
RepeatedPrimitiveGenericTypeTraits
::
default_repeated_field_double_
=
NULL
;
const
RepeatedField
<
float
>*
RepeatedPrimitiveGenericTypeTraits
::
default_repeated_field_float_
=
NULL
;
const
RepeatedField
<
bool
>*
RepeatedPrimitiveGenericTypeTraits
::
default_repeated_field_bool_
=
NULL
;
const
RepeatedStringTypeTraits
::
RepeatedFieldType
*
RepeatedStringTypeTraits
::
default_repeated_field_
=
NULL
;
const
RepeatedMessageGenericTypeTraits
::
RepeatedFieldType
*
RepeatedMessageGenericTypeTraits
::
default_repeated_field_
=
NULL
;
}
// namespace internal
}
// namespace protobuf
}
// namespace google
This diff is collapsed.
Click to expand it.
src/google/protobuf/extension_set.h
View file @
0087da9d
...
...
@@ -46,6 +46,7 @@
#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/logging.h>
#include <google/protobuf/stubs/once.h>
#include <google/protobuf/repeated_field.h>
...
...
@@ -723,15 +724,14 @@ class RepeatedPrimitiveTypeTraits {
static
const
RepeatedFieldType
*
GetDefaultRepeatedField
();
};
// Declared here so that this can be friended below.
void
InitializeDefaultRepeatedFields
();
void
DestroyDefaultRepeatedFields
();
LIBPROTOBUF_EXPORT
extern
ProtobufOnceType
repeated_primitive_generic_type_traits_once_init_
;
class
LIBPROTOBUF_EXPORT
RepeatedPrimitiveGenericTypeTraits
{
private
:
template
<
typename
Type
>
friend
class
RepeatedPrimitiveTypeTraits
;
friend
void
InitializeDefaultRepeatedFields
();
friend
void
DestroyDefaultRepeatedFields
();
static
void
InitializeDefaultRepeatedFields
();
static
void
DestroyDefaultRepeatedFields
();
static
const
RepeatedField
<
int32
>*
default_repeated_field_int32_
;
static
const
RepeatedField
<
int64
>*
default_repeated_field_int64_
;
static
const
RepeatedField
<
uint32
>*
default_repeated_field_uint32_
;
...
...
@@ -766,6 +766,9 @@ template<> inline void RepeatedPrimitiveTypeTraits<TYPE>::Add( \
} \
template<> inline const RepeatedField<TYPE>* \
RepeatedPrimitiveTypeTraits<TYPE>::GetDefaultRepeatedField() { \
GoogleOnceInit( \
&repeated_primitive_generic_type_traits_once_init_, \
&RepeatedPrimitiveGenericTypeTraits::InitializeDefaultRepeatedFields); \
return RepeatedPrimitiveGenericTypeTraits:: \
default_repeated_field_##TYPE##_; \
} \
...
...
@@ -819,6 +822,9 @@ class LIBPROTOBUF_EXPORT StringTypeTraits {
}
};
LIBPROTOBUF_EXPORT
extern
ProtobufOnceType
repeated_string_type_traits_once_init_
;
class
LIBPROTOBUF_EXPORT
RepeatedStringTypeTraits
{
public
:
typedef
const
string
&
ConstType
;
...
...
@@ -862,12 +868,14 @@ class LIBPROTOBUF_EXPORT RepeatedStringTypeTraits {
}
static
const
RepeatedFieldType
*
GetDefaultRepeatedField
()
{
GoogleOnceInit
(
&
repeated_string_type_traits_once_init_
,
&
InitializeDefaultRepeatedFields
);
return
default_repeated_field_
;
}
private
:
friend
void
InitializeDefaultRepeatedFields
();
friend
void
DestroyDefaultRepeatedFields
();
static
void
InitializeDefaultRepeatedFields
();
static
void
DestroyDefaultRepeatedFields
();
static
const
RepeatedFieldType
*
default_repeated_field_
;
};
...
...
@@ -1026,6 +1034,9 @@ class RepeatedMessageTypeTraits {
static
const
RepeatedFieldType
*
GetDefaultRepeatedField
();
};
LIBPROTOBUF_EXPORT
extern
ProtobufOnceType
repeated_message_generic_type_traits_once_init_
;
// This class exists only to hold a generic default empty repeated field for all
// message-type repeated field extensions.
class
LIBPROTOBUF_EXPORT
RepeatedMessageGenericTypeTraits
{
...
...
@@ -1033,14 +1044,17 @@ class LIBPROTOBUF_EXPORT RepeatedMessageGenericTypeTraits {
typedef
RepeatedPtrField
<
::
google
::
protobuf
::
MessageLite
*>
RepeatedFieldType
;
private
:
template
<
typename
Type
>
friend
class
RepeatedMessageTypeTraits
;
friend
void
InitializeDefaultRepeatedFields
();
friend
void
DestroyDefaultRepeatedFields
();
static
void
InitializeDefaultRepeatedFields
();
static
void
DestroyDefaultRepeatedFields
();
static
const
RepeatedFieldType
*
default_repeated_field_
;
};
template
<
typename
Type
>
inline
const
typename
RepeatedMessageTypeTraits
<
Type
>::
RepeatedFieldType
*
RepeatedMessageTypeTraits
<
Type
>::
GetDefaultRepeatedField
()
{
GoogleOnceInit
(
&
repeated_message_generic_type_traits_once_init_
,
&
RepeatedMessageGenericTypeTraits
::
InitializeDefaultRepeatedFields
);
return
reinterpret_cast
<
const
RepeatedFieldType
*>
(
RepeatedMessageGenericTypeTraits
::
default_repeated_field_
);
}
...
...
This diff is collapsed.
Click to expand it.
src/google/protobuf/generated_message_reflection.cc
View file @
0087da9d
...
...
@@ -58,18 +58,6 @@ bool IsMapFieldInApi(const FieldDescriptor* field) {
}
}
// anonymous namespace
int
StringSpaceUsedExcludingSelf
(
const
string
&
str
)
{
const
void
*
start
=
&
str
;
const
void
*
end
=
&
str
+
1
;
if
(
start
<=
str
.
data
()
&&
str
.
data
()
<
end
)
{
// The string's data is stored inside the string object itself.
return
0
;
}
else
{
return
str
.
capacity
();
}
}
bool
ParseNamedEnum
(
const
EnumDescriptor
*
descriptor
,
const
string
&
name
,
int
*
value
)
{
...
...
This diff is collapsed.
Click to expand it.
src/google/protobuf/generated_message_util.cc
View file @
0087da9d
...
...
@@ -60,6 +60,18 @@ void InitEmptyString() {
OnShutdown
(
&
DeleteEmptyString
);
}
int
StringSpaceUsedExcludingSelf
(
const
string
&
str
)
{
const
void
*
start
=
&
str
;
const
void
*
end
=
&
str
+
1
;
if
(
start
<=
str
.
data
()
&&
str
.
data
()
<
end
)
{
// The string's data is stored inside the string object itself.
return
0
;
}
else
{
return
str
.
capacity
();
}
}
}
// namespace internal
}
// namespace protobuf
...
...
This diff is collapsed.
Click to expand it.
src/google/protobuf/generated_message_util.h
View file @
0087da9d
...
...
@@ -89,12 +89,6 @@ LIBPROTOBUF_EXPORT inline const ::std::string& GetEmptyString() {
return
GetEmptyStringAlreadyInited
();
}
// Defined in generated_message_reflection.cc -- not actually part of the lite
// library.
//
// TODO(jasonh): The various callers get this declaration from a variety of
// places: probably in most cases repeated_field.h. Clean these up so they all
// get the declaration from this file.
LIBPROTOBUF_EXPORT
int
StringSpaceUsedExcludingSelf
(
const
string
&
str
);
...
...
This diff is collapsed.
Click to expand it.
src/google/protobuf/repeated_field.h
View file @
0087da9d
...
...
@@ -649,7 +649,8 @@ inline const Message& GenericTypeHandler<Message>::default_instance() {
// StringTypeHandler is exported. So, we factor out StringTypeHandlerBase,
// export that, then make StringTypeHandler be a subclass which is NOT
// exported.
// TODO(kenton): There has to be a better way.
// TODO(kenton): Now that StringSpaceUsedExcludingSelf() is in the lite
// library, this can be cleaned up.
class
LIBPROTOBUF_EXPORT
StringTypeHandlerBase
{
public
:
typedef
string
Type
;
...
...
This diff is collapsed.
Click to expand it.
src/google/protobuf/stubs/atomicops.h
View file @
0087da9d
...
...
@@ -173,7 +173,7 @@ Atomic64 Release_Load(volatile const Atomic64* ptr);
// Include our platform specific implementation.
#define GOOGLE_PROTOBUF_ATOMICOPS_ERROR \
#error
"Atomic operations are not supported on your platform"
"Atomic operations are not supported on your platform"
// ThreadSanitizer, http://clang.llvm.org/docs/ThreadSanitizer.html.
#if defined(THREAD_SANITIZER)
...
...
@@ -183,7 +183,7 @@ Atomic64 Release_Load(volatile const Atomic64* ptr);
#if defined(GOOGLE_PROTOBUF_ARCH_IA32) || defined(GOOGLE_PROTOBUF_ARCH_X64)
#include <google/protobuf/stubs/atomicops_internals_x86_msvc.h>
#else
GOOGLE_PROTOBUF_ATOMICOPS_ERROR
#error
GOOGLE_PROTOBUF_ATOMICOPS_ERROR
#endif
// Solaris
...
...
@@ -218,15 +218,15 @@ GOOGLE_PROTOBUF_ATOMICOPS_ERROR
#if __has_extension(c_atomic)
#include <google/protobuf/stubs/atomicops_internals_generic_gcc.h>
#else
GOOGLE_PROTOBUF_ATOMICOPS_ERROR
#error
GOOGLE_PROTOBUF_ATOMICOPS_ERROR
#endif
#else
GOOGLE_PROTOBUF_ATOMICOPS_ERROR
#error
GOOGLE_PROTOBUF_ATOMICOPS_ERROR
#endif
// Unknown.
#else
GOOGLE_PROTOBUF_ATOMICOPS_ERROR
#error
GOOGLE_PROTOBUF_ATOMICOPS_ERROR
#endif
// On some platforms we need additional declarations to make AtomicWord
...
...
This diff is collapsed.
Click to expand it.
src/google/protobuf/stubs/port.h
View file @
0087da9d
...
...
@@ -82,6 +82,15 @@
#define LIBPROTOC_EXPORT
#endif
// These #includes are for the byte swap functions declared later on.
#ifdef _MSC_VER
#include <stdlib.h> // NOLINT(build/include)
#elif defined(__APPLE__)
#include <libkern/OSByteOrder.h>
#elif defined(__GLIBC__) || defined(__CYGWIN__)
#include <byteswap.h> // IWYU pragma: export
#endif
// ===================================================================
// from google3/base/port.h
namespace
google
{
...
...
@@ -179,7 +188,7 @@ static const uint64 kuint64max = GOOGLE_ULONGLONG(0xFFFFFFFFFFFFFFFF);
// Provided at least since GCC 3.0.
#define GOOGLE_PREDICT_TRUE(x) (__builtin_expect(!!(x), 1))
#else
#define GOOGLE_PREDICT_TRUE
#define GOOGLE_PREDICT_TRUE
(x) (x)
#endif
#endif
...
...
@@ -188,7 +197,7 @@ static const uint64 kuint64max = GOOGLE_ULONGLONG(0xFFFFFFFFFFFFFFFF);
// Provided at least since GCC 3.0.
#define GOOGLE_PREDICT_FALSE(x) (__builtin_expect(x, 0))
#else
#define GOOGLE_PREDICT_FALSE
#define GOOGLE_PREDICT_FALSE
(x) (x)
#endif
#endif
...
...
@@ -270,7 +279,6 @@ inline void GOOGLE_UNALIGNED_STORE64(void *p, uint64 v) {
// The following guarantees declaration of the byte swap functions, and
// defines __BYTE_ORDER for MSVC
#ifdef _MSC_VER
#include <stdlib.h> // NOLINT(build/include)
#define __BYTE_ORDER __LITTLE_ENDIAN
#define bswap_16(x) _byteswap_ushort(x)
#define bswap_32(x) _byteswap_ulong(x)
...
...
@@ -278,15 +286,11 @@ inline void GOOGLE_UNALIGNED_STORE64(void *p, uint64 v) {
#elif defined(__APPLE__)
// Mac OS X / Darwin features
#include <libkern/OSByteOrder.h>
#define bswap_16(x) OSSwapInt16(x)
#define bswap_32(x) OSSwapInt32(x)
#define bswap_64(x) OSSwapInt64(x)
#elif defined(__GLIBC__) || defined(__CYGWIN__)
#include <byteswap.h> // IWYU pragma: export
#else
#elif !defined(__GLIBC__) && !defined(__CYGWIN__)
static
inline
uint16
bswap_16
(
uint16
x
)
{
return
static_cast
<
uint16
>
(((
x
&
0xFF
)
<<
8
)
|
((
x
&
0xFF00
)
>>
8
));
...
...
This diff is collapsed.
Click to expand it.
src/google/protobuf/stubs/time.cc
View file @
0087da9d
...
...
@@ -21,7 +21,6 @@ static const int64 kSecondsFromEraToEpoch = 62135596800LL;
static
const
int64
kMinTime
=
-
62135596800LL
;
// 0001-01-01T00:00:00
static
const
int64
kMaxTime
=
253402300799LL
;
// 9999-12-31T23:59:59
static
const
int
kNanosPerSecond
=
1000000000
;
static
const
int
kNanosPerMillisecond
=
1000000
;
static
const
int
kNanosPerMicrosecond
=
1000
;
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment