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
fcb8a50b
Commit
fcb8a50b
authored
12 years ago
by
xiaofeng@google.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update MSVC project files and fix compilation issues in MSVC.
parent
b55a20fa
No related merge requests found
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
160 additions
and
58 deletions
+160
-58
repeated_field.cc
src/google/protobuf/repeated_field.cc
+2
-15
repeated_field.h
src/google/protobuf/repeated_field.h
+15
-38
stringprintf.cc
src/google/protobuf/stubs/stringprintf.cc
+5
-0
stringprintf_unittest.cc
src/google/protobuf/stubs/stringprintf_unittest.cc
+2
-2
wire_format_unittest.cc
src/google/protobuf/wire_format_unittest.cc
+1
-1
extract_includes.bat
vsprojects/extract_includes.bat
+1
-0
libprotobuf-lite.vcproj
vsprojects/libprotobuf-lite.vcproj
+17
-1
libprotobuf.vcproj
vsprojects/libprotobuf.vcproj
+17
-1
libprotoc.vcproj
vsprojects/libprotoc.vcproj
+12
-0
lite-test.vcproj
vsprojects/lite-test.vcproj
+32
-0
tests.vcproj
vsprojects/tests.vcproj
+56
-0
No files found.
src/google/protobuf/repeated_field.cc
View file @
fcb8a50b
...
...
@@ -49,8 +49,8 @@ void RepeatedPtrFieldBase::Reserve(int new_size) {
total_size_
=
max
(
kMinRepeatedFieldAllocationSize
,
max
(
total_size_
*
2
,
new_size
));
elements_
=
new
void
*
[
total_size_
];
memcpy
(
elements_
,
old_elements
,
allocated_size_
*
sizeof
(
elements_
[
0
]));
if
(
old_elements
!=
initial_space_
)
{
if
(
old_elements
!=
NULL
)
{
memcpy
(
elements_
,
old_elements
,
allocated_size_
*
sizeof
(
elements_
[
0
]));
delete
[]
old_elements
;
}
}
...
...
@@ -61,29 +61,16 @@ void RepeatedPtrFieldBase::Swap(RepeatedPtrFieldBase* other) {
int
swap_current_size
=
current_size_
;
int
swap_allocated_size
=
allocated_size_
;
int
swap_total_size
=
total_size_
;
// We may not be using initial_space_ but it's not worth checking. Just
// copy it anyway.
void
*
swap_initial_space
[
kInitialSize
];
memcpy
(
swap_initial_space
,
initial_space_
,
sizeof
(
initial_space_
));
elements_
=
other
->
elements_
;
current_size_
=
other
->
current_size_
;
allocated_size_
=
other
->
allocated_size_
;
total_size_
=
other
->
total_size_
;
memcpy
(
initial_space_
,
other
->
initial_space_
,
sizeof
(
initial_space_
));
other
->
elements_
=
swap_elements
;
other
->
current_size_
=
swap_current_size
;
other
->
allocated_size_
=
swap_allocated_size
;
other
->
total_size_
=
swap_total_size
;
memcpy
(
other
->
initial_space_
,
swap_initial_space
,
sizeof
(
swap_initial_space
));
if
(
elements_
==
other
->
initial_space_
)
{
elements_
=
initial_space_
;
}
if
(
other
->
elements_
==
initial_space_
)
{
other
->
elements_
=
other
->
initial_space_
;
}
}
string
*
StringTypeHandlerBase
::
New
()
{
...
...
This diff is collapsed.
Click to expand it.
src/google/protobuf/repeated_field.h
View file @
fcb8a50b
...
...
@@ -171,10 +171,6 @@ class RepeatedField {
private
:
static
const
int
kInitialSize
=
0
;
// This cannot be the last attribute defined if kInitialSize is 0 or
// the checks elements_ != initial_space_ to delete are not valid.
Element
initial_space_
[
kInitialSize
];
Element
*
elements_
;
int
current_size_
;
int
total_size_
;
...
...
@@ -317,10 +313,6 @@ class LIBPROTOBUF_EXPORT RepeatedPtrFieldBase {
static
const
int
kInitialSize
=
0
;
// This cannot be the last attribute defined if kInitialSize is 0 or
// the checks elements_ != initial_space_ to delete are not valid.
void
*
initial_space_
[
kInitialSize
];
void
**
elements_
;
int
current_size_
;
int
allocated_size_
;
...
...
@@ -557,14 +549,14 @@ class RepeatedPtrField : public internal::RepeatedPtrFieldBase {
template
<
typename
Element
>
inline
RepeatedField
<
Element
>::
RepeatedField
()
:
elements_
(
initial_space_
),
:
elements_
(
NULL
),
current_size_
(
0
),
total_size_
(
kInitialSize
)
{
}
template
<
typename
Element
>
inline
RepeatedField
<
Element
>::
RepeatedField
(
const
RepeatedField
&
other
)
:
elements_
(
initial_space_
),
:
elements_
(
NULL
),
current_size_
(
0
),
total_size_
(
kInitialSize
)
{
CopyFrom
(
other
);
...
...
@@ -573,7 +565,7 @@ inline RepeatedField<Element>::RepeatedField(const RepeatedField& other)
template
<
typename
Element
>
template
<
typename
Iter
>
inline
RepeatedField
<
Element
>::
RepeatedField
(
Iter
begin
,
const
Iter
&
end
)
:
elements_
(
initial_space_
),
:
elements_
(
NULL
),
current_size_
(
0
),
total_size_
(
kInitialSize
)
{
for
(;
begin
!=
end
;
++
begin
)
{
...
...
@@ -583,9 +575,7 @@ inline RepeatedField<Element>::RepeatedField(Iter begin, const Iter& end)
template
<
typename
Element
>
RepeatedField
<
Element
>::~
RepeatedField
()
{
if
(
elements_
!=
initial_space_
)
{
delete
[]
elements_
;
}
delete
[]
elements_
;
}
template
<
typename
Element
>
...
...
@@ -682,9 +672,11 @@ inline void RepeatedField<Element>::Clear() {
template
<
typename
Element
>
inline
void
RepeatedField
<
Element
>::
MergeFrom
(
const
RepeatedField
&
other
)
{
Reserve
(
current_size_
+
other
.
current_size_
);
CopyArray
(
elements_
+
current_size_
,
other
.
elements_
,
other
.
current_size_
);
current_size_
+=
other
.
current_size_
;
if
(
other
.
current_size_
!=
0
)
{
Reserve
(
current_size_
+
other
.
current_size_
);
CopyArray
(
elements_
+
current_size_
,
other
.
elements_
,
other
.
current_size_
);
current_size_
+=
other
.
current_size_
;
}
}
template
<
typename
Element
>
...
...
@@ -710,27 +702,14 @@ void RepeatedField<Element>::Swap(RepeatedField* other) {
Element
*
swap_elements
=
elements_
;
int
swap_current_size
=
current_size_
;
int
swap_total_size
=
total_size_
;
// We may not be using initial_space_ but it's not worth checking. Just
// copy it anyway.
Element
swap_initial_space
[
kInitialSize
];
MoveArray
(
swap_initial_space
,
initial_space_
,
kInitialSize
);
elements_
=
other
->
elements_
;
current_size_
=
other
->
current_size_
;
total_size_
=
other
->
total_size_
;
MoveArray
(
initial_space_
,
other
->
initial_space_
,
kInitialSize
);
other
->
elements_
=
swap_elements
;
other
->
current_size_
=
swap_current_size
;
other
->
total_size_
=
swap_total_size
;
MoveArray
(
other
->
initial_space_
,
swap_initial_space
,
kInitialSize
);
if
(
elements_
==
other
->
initial_space_
)
{
elements_
=
initial_space_
;
}
if
(
other
->
elements_
==
initial_space_
)
{
other
->
elements_
=
other
->
initial_space_
;
}
}
template
<
typename
Element
>
...
...
@@ -761,7 +740,7 @@ RepeatedField<Element>::end() const {
template
<
typename
Element
>
inline
int
RepeatedField
<
Element
>::
SpaceUsedExcludingSelf
()
const
{
return
(
elements_
!=
initial_space_
)
?
total_size_
*
sizeof
(
elements_
[
0
])
:
0
;
return
(
elements_
!=
NULL
)
?
total_size_
*
sizeof
(
elements_
[
0
])
:
0
;
}
// Avoid inlining of Reserve(): new, copy, and delete[] lead to a significant
...
...
@@ -774,8 +753,8 @@ void RepeatedField<Element>::Reserve(int new_size) {
total_size_
=
max
(
google
::
protobuf
::
internal
::
kMinRepeatedFieldAllocationSize
,
max
(
total_size_
*
2
,
new_size
));
elements_
=
new
Element
[
total_size_
];
MoveArray
(
elements_
,
old_elements
,
current_size_
);
if
(
old_elements
!=
initial_space_
)
{
if
(
old_elements
!=
NULL
)
{
MoveArray
(
elements_
,
old_elements
,
current_size_
);
delete
[]
old_elements
;
}
}
...
...
@@ -821,7 +800,7 @@ struct ElementCopier<Element, true> {
namespace
internal
{
inline
RepeatedPtrFieldBase
::
RepeatedPtrFieldBase
()
:
elements_
(
initial_space_
),
:
elements_
(
NULL
),
current_size_
(
0
),
allocated_size_
(
0
),
total_size_
(
kInitialSize
)
{
...
...
@@ -832,9 +811,7 @@ void RepeatedPtrFieldBase::Destroy() {
for
(
int
i
=
0
;
i
<
allocated_size_
;
i
++
)
{
TypeHandler
::
Delete
(
cast
<
TypeHandler
>
(
elements_
[
i
]));
}
if
(
elements_
!=
initial_space_
)
{
delete
[]
elements_
;
}
delete
[]
elements_
;
}
inline
int
RepeatedPtrFieldBase
::
size
()
const
{
...
...
@@ -930,7 +907,7 @@ inline void RepeatedPtrFieldBase::SwapElements(int index1, int index2) {
template
<
typename
TypeHandler
>
inline
int
RepeatedPtrFieldBase
::
SpaceUsedExcludingSelf
()
const
{
int
allocated_bytes
=
(
elements_
!=
initial_space_
)
?
total_size_
*
sizeof
(
elements_
[
0
])
:
0
;
(
elements_
!=
NULL
)
?
total_size_
*
sizeof
(
elements_
[
0
])
:
0
;
for
(
int
i
=
0
;
i
<
allocated_size_
;
++
i
)
{
allocated_bytes
+=
TypeHandler
::
SpaceUsed
(
*
cast
<
TypeHandler
>
(
elements_
[
i
]));
}
...
...
This diff is collapsed.
Click to expand it.
src/google/protobuf/stubs/stringprintf.cc
View file @
fcb8a50b
...
...
@@ -44,6 +44,11 @@ namespace protobuf {
#ifdef _MSC_VER
enum
{
IS_COMPILER_MSVC
=
1
};
#ifndef va_copy
// Define va_copy for MSVC. This is a hack, assuming va_list is simply a
// pointer into the stack and is safe to copy.
#define va_copy(dest, src) ((dest) = (src))
#endif
#else
enum
{
IS_COMPILER_MSVC
=
0
};
#endif
...
...
This diff is collapsed.
Click to expand it.
src/google/protobuf/stubs/stringprintf_unittest.cc
View file @
fcb8a50b
...
...
@@ -55,9 +55,9 @@ TEST(StringPrintfTest, Empty) {
TEST
(
StringPrintfTest
,
Misc
)
{
// MSVC does not support $ format specifier.
#if !defined(
COMPILER_MSVC
)
#if !defined(
_MSC_VER
)
EXPECT_EQ
(
"123hello w"
,
StringPrintf
(
"%3$d%2$s %1$c"
,
'w'
,
"hello"
,
123
));
#endif // !
COMPILER_MSVC
#endif // !
_MSC_VER
}
TEST
(
StringAppendFTest
,
Empty
)
{
...
...
This diff is collapsed.
Click to expand it.
src/google/protobuf/wire_format_unittest.cc
View file @
fcb8a50b
...
...
@@ -497,7 +497,7 @@ TEST(WireFormatTest, ParseMessageSetWithReverseTagOrder) {
coded_output
.
WriteVarint32
(
message
.
ByteSize
());
message
.
SerializeWithCachedSizes
(
&
coded_output
);
// Write the type id.
uint32
_t
type_id
=
message
.
GetDescriptor
()
->
extension
(
0
)
->
number
();
uint32
type_id
=
message
.
GetDescriptor
()
->
extension
(
0
)
->
number
();
WireFormatLite
::
WriteUInt32
(
WireFormatLite
::
kMessageSetTypeIdNumber
,
type_id
,
&
coded_output
);
coded_output
.
WriteTag
(
WireFormatLite
::
kMessageSetItemEndTag
);
...
...
This diff is collapsed.
Click to expand it.
vsprojects/extract_includes.bat
View file @
fcb8a50b
...
...
@@ -17,6 +17,7 @@ copy ..\src\google\protobuf\descriptor.pb.h include\google\protobuf\descriptor.p
copy ..\src\google\protobuf\descriptor_database.h include\google\protobuf\descriptor_database.h
copy ..\src\google\protobuf\dynamic_message.h include\google\protobuf\dynamic_message.h
copy ..\src\google\protobuf\extension_set.h include\google\protobuf\extension_set.h
copy ..\src\google\protobuf\generated_enum_reflection.h include\google\protobuf\generated_enum_reflection.h
copy ..\src\google\protobuf\generated_message_util.h include\google\protobuf\generated_message_util.h
copy ..\src\google\protobuf\generated_message_reflection.h include\google\protobuf\generated_message_reflection.h
copy ..\src\google\protobuf\message.h include\google\protobuf\message.h
...
...
This diff is collapsed.
Click to expand it.
vsprojects/libprotobuf-lite.vcproj
View file @
fcb8a50b
...
...
@@ -204,7 +204,7 @@
>
</File>
<File
RelativePath=
"..\src\google\protobuf\stubs\stl_util
-inl
.h"
RelativePath=
"..\src\google\protobuf\stubs\stl_util.h"
>
</File>
<File
...
...
@@ -223,6 +223,18 @@
RelativePath=
"..\src\google\protobuf\io\zero_copy_stream_impl_lite.h"
>
</File>
<File
RelativePath=
"..\src\google\protobuf\stubs\stringprintf.h"
>
</File>
<File
RelativePath=
"..\src\google\protobuf\stubs\template_util.h"
>
</File>
<File
RelativePath=
"..\src\google\protobuf\stubs\type_traits.h"
>
</File>
</Filter>
<Filter
Name=
"Resource Files"
...
...
@@ -279,6 +291,10 @@
RelativePath=
"..\src\google\protobuf\io\zero_copy_stream_impl_lite.cc"
>
</File>
<File
RelativePath=
"..\src\google\protobuf\stubs\stringprintf.cc"
>
</File>
</Filter>
</Files>
<Globals>
...
...
This diff is collapsed.
Click to expand it.
vsprojects/libprotobuf.vcproj
View file @
fcb8a50b
...
...
@@ -252,7 +252,19 @@
>
</File>
<File
RelativePath=
"..\src\google\protobuf\stubs\stl_util-inl.h"
RelativePath=
"..\src\google\protobuf\stubs\stl_util.h"
>
</File>
<File
RelativePath=
"..\src\google\protobuf\stubs\stringprintf.h"
>
</File>
<File
RelativePath=
"..\src\google\protobuf\stubs\template_util.h"
>
</File>
<File
RelativePath=
"..\src\google\protobuf\stubs\type_traits.h"
>
</File>
<File
...
...
@@ -439,6 +451,10 @@
RelativePath=
"..\src\google\protobuf\io\zero_copy_stream_impl_lite.cc"
>
</File>
<File
RelativePath=
"..\src\google\protobuf\stubs\stringprintf.cc"
>
</File>
</Filter>
</Files>
<Globals>
...
...
This diff is collapsed.
Click to expand it.
vsprojects/libprotoc.vcproj
View file @
fcb8a50b
...
...
@@ -207,6 +207,10 @@
RelativePath=
"..\src\google\protobuf\compiler\cpp\cpp_message_field.h"
>
</File>
<File
RelativePath=
"..\src\google\protobuf\compiler\cpp\cpp_options.h"
>
</File>
<File
RelativePath=
"..\src\google\protobuf\compiler\cpp\cpp_primitive_field.h"
>
...
...
@@ -267,6 +271,14 @@
RelativePath=
"..\src\google\protobuf\compiler\java\java_string_field.h"
>
</File>
<File
RelativePath=
"..\src\google\protobuf\compiler\java\java_doc_comment.h"
>
</File>
<File
RelativePath=
"..\src\google\protobuf\compiler\java\java_doc_comment.cc"
>
</File>
<File
RelativePath=
"..\src\google\protobuf\compiler\python\python_generator.h"
>
...
...
This diff is collapsed.
Click to expand it.
vsprojects/lite-test.vcproj
View file @
fcb8a50b
...
...
@@ -190,6 +190,10 @@
RelativePath=
".\google\protobuf\unittest_import_lite.pb.h"
>
</File>
<File
RelativePath=
".\google\protobuf\unittest_import_public_lite.pb.h"
>
</File>
</Filter>
<Filter
Name=
"Resource Files"
...
...
@@ -218,6 +222,10 @@
RelativePath=
".\google\protobuf\unittest_import_lite.pb.cc"
>
</File>
<File
RelativePath=
".\google\protobuf\unittest_import_public_lite.pb.cc"
>
</File>
</Filter>
<File
RelativePath=
"..\src\google\protobuf\unittest_lite.proto"
...
...
@@ -267,6 +275,30 @@
/>
</FileConfiguration>
</File>
<File
RelativePath=
"..\src\google\protobuf\unittest_import_public_lite.proto"
>
<FileConfiguration
Name=
"Debug|Win32"
>
<Tool
Name=
"VCCustomBuildTool"
Description=
"Generating unittest_import_public_lite.pb.{h,cc}..."
CommandLine=
"Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_import_public_lite.proto
"
Outputs=
"google\protobuf\unittest_import_public_lite.pb.h;google\protobuf\unittest_import_public_lite.pb.cc"
/>
</FileConfiguration>
<FileConfiguration
Name=
"Release|Win32"
>
<Tool
Name=
"VCCustomBuildTool"
Description=
"Generating unittest_import_public_lite.pb.{h,cc}..."
CommandLine=
"Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_import_public_lite.proto
"
Outputs=
"google\protobuf\unittest_import_public_lite.pb.h;google\protobuf\unittest_import_public_lite.pb.cc"
/>
</FileConfiguration>
</File>
</Files>
<Globals>
</Globals>
...
...
This diff is collapsed.
Click to expand it.
vsprojects/tests.vcproj
View file @
fcb8a50b
...
...
@@ -214,6 +214,10 @@
RelativePath=
".\google\protobuf\unittest_import.pb.h"
>
</File>
<File
RelativePath=
".\google\protobuf\unittest_import_public.pb.h"
>
</File>
<File
RelativePath=
".\google\protobuf\unittest_lite_imports_nonline.pb.h"
>
...
...
@@ -262,6 +266,10 @@
RelativePath=
"..\src\google\protobuf\compiler\cpp\cpp_bootstrap_unittest.cc"
>
</File>
<File
RelativePath=
"..\src\google\protobuf\compiler\cpp\cpp_unittest.cc"
>
</File>
<File
RelativePath=
".\google\protobuf\compiler\cpp\cpp_test_bad_identifiers.pb.cc"
>
...
...
@@ -278,6 +286,10 @@
RelativePath=
"..\src\google\protobuf\compiler\java\java_plugin_unittest.cc"
>
</File>
<File
RelativePath=
"..\src\google\protobuf\compiler\java\java_doc_comment_unittest.cc"
>
</File>
<File
RelativePath=
"..\src\google\protobuf\compiler\python\python_plugin_unittest.cc"
>
...
...
@@ -338,10 +350,26 @@
RelativePath=
"..\src\google\protobuf\repeated_field_unittest.cc"
>
</File>
<File
RelativePath=
"..\src\google\protobuf\repeated_field_reflection_unittest.cc"
>
</File>
<File
RelativePath=
"..\src\google\protobuf\stubs\structurally_valid_unittest.cc"
>
</File>
<File
RelativePath=
"..\src\google\protobuf\stubs\stringprintf_unittest.cc"
>
</File>
<File
RelativePath=
"..\src\google\protobuf\stubs\template_util_unittest.cc"
>
</File>
<File
RelativePath=
"..\src\google\protobuf\stubs\type_traits_unittest.cc"
>
</File>
<File
RelativePath=
"..\src\google\protobuf\stubs\strutil_unittest.cc"
>
...
...
@@ -374,6 +402,10 @@
RelativePath=
".\google\protobuf\unittest_import.pb.cc"
>
</File>
<File
RelativePath=
".\google\protobuf\unittest_import_public.pb.cc"
>
</File>
<File
RelativePath=
".\google\protobuf\unittest_lite_imports_nonlite.pb.cc"
>
...
...
@@ -523,6 +555,30 @@
/>
</FileConfiguration>
</File>
<File
RelativePath=
"..\src\google\protobuf\unittest_import_public.proto"
>
<FileConfiguration
Name=
"Debug|Win32"
>
<Tool
Name=
"VCCustomBuildTool"
Description=
"Generating unittest_import_public.pb.{h,cc}..."
CommandLine=
"Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_import_public.proto
"
Outputs=
"google\protobuf\unittest_import_public.pb.h;google\protobuf\unittest_import_public.pb.cc"
/>
</FileConfiguration>
<FileConfiguration
Name=
"Release|Win32"
>
<Tool
Name=
"VCCustomBuildTool"
Description=
"Generating unittest_import_public.pb.{h,cc}..."
CommandLine=
"Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_import_public.proto
"
Outputs=
"google\protobuf\unittest_import_public.pb.h;google\protobuf\unittest_import_public.pb.cc"
/>
</FileConfiguration>
</File>
<File
RelativePath=
"..\src\google\protobuf\unittest_lite_imports_nonlite.proto"
>
...
...
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