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
Sep 24, 2012
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
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
()
{
...
...
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
]));
}
...
...
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
...
...
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
)
{
...
...
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
);
...
...
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
...
...
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>
...
...
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>
...
...
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"
>
...
...
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>
...
...
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"
>
...
...
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