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
bde01d53
Commit
bde01d53
authored
9 years ago
by
Jan Tattermusch
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #660 from jskeet/throw-on-null
Throw on null for string/bytes single fields
parents
7909b2ed
d18cc084
master
v3.11.4
v3.11.3
v3.11.2
v3.11.1
v3.11.0
v3.11.0-rc2
v3.11.0-rc1
v3.10.1
v3.10.0
v3.10.0-rc1
v3.9.2
v3.9.1
v3.9.0
v3.9.0-rc1
v3.8.0
v3.8.0-rc1
v3.7.1
v3.7.0
v3.7.0rc2
v3.7.0rc1
v3.7.0-rc.3
v3.7.0-rc.2
v3.6.1.3
v3.6.1.2
v3.6.1.1
v3.6.1
v3.6.0.1
v3.6.0
v3.6.0rc2
v3.6.0rc1
v3.5.2
v3.5.1.1
v3.5.1
v3.5.0.1
v3.5.0
v3.4.1
v3.4.0
v3.4.0rc3
v3.4.0rc2
v3.4.0rc1
v3.3.2
v3.3.1
v3.3.0
v3.3.0rc1
v3.2.1
v3.2.0
v3.2.0rc2
v3.2.0-rc.1
v3.2.0-alpha-1
v3.1.0
v3.1.0-alpha-1
v3.0.2
v3.0.1-javalite
v3.0.0
v3.0.0-javalite
v3.0.0-beta-4
v3.0.0-beta-3.3
v3.0.0-beta-3.2
v3.0.0-beta-3.1
v3.0.0-beta-3
v3.0.0-beta-3-pre-1
v3.0.0-beta-2
v3.0.0-beta-1.1
v3.0.0-beta-1
v3.0.0-beta-1-bzl-fix
v3.0.0-alpha-4.1
v3.0.0-alpha-4
conformance-build-tag
No related merge requests found
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
170 additions
and
149 deletions
+170
-149
Makefile.am
Makefile.am
+1
-1
Addressbook.cs
csharp/src/AddressBook/Addressbook.cs
+3
-3
GeneratedMessageTest.cs
csharp/src/Google.Protobuf.Test/GeneratedMessageTest.cs
+10
-0
UnittestProto3.cs
csharp/src/Google.Protobuf.Test/TestProtos/UnittestProto3.cs
+11
-11
MapField.cs
csharp/src/Google.Protobuf/Collections/MapField.cs
+8
-8
Google.Protobuf.csproj
csharp/src/Google.Protobuf/Google.Protobuf.csproj
+1
-1
JsonFormatter.cs
csharp/src/Google.Protobuf/JsonFormatter.cs
+1
-1
MessageExtensions.cs
csharp/src/Google.Protobuf/MessageExtensions.cs
+14
-14
MessageParser.cs
csharp/src/Google.Protobuf/MessageParser.cs
+2
-2
Preconditions.cs
csharp/src/Google.Protobuf/Preconditions.cs
+74
-52
DescriptorProtoFile.cs
csharp/src/Google.Protobuf/Reflection/DescriptorProtoFile.cs
+26
-26
Any.cs
csharp/src/Google.Protobuf/WellKnownTypes/Any.cs
+2
-2
Api.cs
csharp/src/Google.Protobuf/WellKnownTypes/Api.cs
+5
-5
SourceContext.cs
csharp/src/Google.Protobuf/WellKnownTypes/SourceContext.cs
+1
-1
Struct.cs
csharp/src/Google.Protobuf/WellKnownTypes/Struct.cs
+1
-1
Type.cs
csharp/src/Google.Protobuf/WellKnownTypes/Type.cs
+6
-6
Wrappers.cs
csharp/src/Google.Protobuf/WellKnownTypes/Wrappers.cs
+2
-2
csharp_field_base.cc
src/google/protobuf/compiler/csharp/csharp_field_base.cc
+0
-11
csharp_primitive_field.cc
...google/protobuf/compiler/csharp/csharp_primitive_field.cc
+2
-2
No files found.
Makefile.am
View file @
bde01d53
...
...
@@ -107,6 +107,7 @@ csharp_EXTRA_DIST= \
csharp/src/Google.Protobuf/LimitedInputStream.cs
\
csharp/src/Google.Protobuf/MessageExtensions.cs
\
csharp/src/Google.Protobuf/MessageParser.cs
\
csharp/src/Google.Protobuf/Preconditions.cs
\
csharp/src/Google.Protobuf/Properties/AssemblyInfo.cs
\
csharp/src/Google.Protobuf/Reflection/DescriptorBase.cs
\
csharp/src/Google.Protobuf/Reflection/DescriptorPool.cs
\
...
...
@@ -133,7 +134,6 @@ csharp_EXTRA_DIST= \
csharp/src/Google.Protobuf/Reflection/RepeatedFieldAccessor.cs
\
csharp/src/Google.Protobuf/Reflection/ServiceDescriptor.cs
\
csharp/src/Google.Protobuf/Reflection/SingleFieldAccessor.cs
\
csharp/src/Google.Protobuf/ThrowHelper.cs
\
csharp/src/Google.Protobuf/WellKnownTypes/Any.cs
\
csharp/src/Google.Protobuf/WellKnownTypes/Api.cs
\
csharp/src/Google.Protobuf/WellKnownTypes/Duration.cs
\
...
...
This diff is collapsed.
Click to expand it.
csharp/src/AddressBook/Addressbook.cs
View file @
bde01d53
...
...
@@ -76,7 +76,7 @@ namespace Google.Protobuf.Examples.AddressBook {
public
string
Name
{
get
{
return
name_
;
}
set
{
name_
=
value
??
""
;
name_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -94,7 +94,7 @@ namespace Google.Protobuf.Examples.AddressBook {
public
string
Email
{
get
{
return
email_
;
}
set
{
email_
=
value
??
""
;
email_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -257,7 +257,7 @@ namespace Google.Protobuf.Examples.AddressBook {
public
string
Number
{
get
{
return
number_
;
}
set
{
number_
=
value
??
""
;
number_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
This diff is collapsed.
Click to expand it.
csharp/src/Google.Protobuf.Test/GeneratedMessageTest.cs
View file @
bde01d53
...
...
@@ -111,6 +111,16 @@ namespace Google.Protobuf
Assert
.
IsNull
(
message
.
OneofNestedMessage
);
}
[
Test
]
public
void
NullStringAndBytesRejected
()
{
var
message
=
new
TestAllTypes
();
Assert
.
Throws
<
ArgumentNullException
>(()
=>
message
.
SingleString
=
null
);
Assert
.
Throws
<
ArgumentNullException
>(()
=>
message
.
OneofString
=
null
);
Assert
.
Throws
<
ArgumentNullException
>(()
=>
message
.
SingleBytes
=
null
);
Assert
.
Throws
<
ArgumentNullException
>(()
=>
message
.
OneofBytes
=
null
);
}
[
Test
]
public
void
RoundTrip_Empty
()
{
...
...
This diff is collapsed.
Click to expand it.
csharp/src/Google.Protobuf.Test/TestProtos/UnittestProto3.cs
View file @
bde01d53
...
...
@@ -426,7 +426,7 @@ namespace Google.Protobuf.TestProtos {
public
string
SingleString
{
get
{
return
singleString_
;
}
set
{
singleString_
=
value
??
""
;
singleString_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -435,7 +435,7 @@ namespace Google.Protobuf.TestProtos {
public
pb
::
ByteString
SingleBytes
{
get
{
return
singleBytes_
;
}
set
{
singleBytes_
=
value
??
pb
::
ByteString
.
Empty
;
singleBytes_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -700,7 +700,7 @@ namespace Google.Protobuf.TestProtos {
public
string
OneofString
{
get
{
return
oneofFieldCase_
==
OneofFieldOneofCase
.
OneofString
?
(
string
)
oneofField_
:
""
;
}
set
{
oneofField_
=
value
??
""
;
oneofField_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
oneofFieldCase_
=
OneofFieldOneofCase
.
OneofString
;
}
}
...
...
@@ -709,7 +709,7 @@ namespace Google.Protobuf.TestProtos {
public
pb
::
ByteString
OneofBytes
{
get
{
return
oneofFieldCase_
==
OneofFieldOneofCase
.
OneofBytes
?
(
pb
::
ByteString
)
oneofField_
:
pb
::
ByteString
.
Empty
;
}
set
{
oneofField_
=
value
??
pb
::
ByteString
.
Empty
;
oneofField_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
oneofFieldCase_
=
OneofFieldOneofCase
.
OneofBytes
;
}
}
...
...
@@ -2703,7 +2703,7 @@ namespace Google.Protobuf.TestProtos {
public
string
StringField
{
get
{
return
stringField_
;
}
set
{
stringField_
=
value
??
""
;
stringField_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -2954,7 +2954,7 @@ namespace Google.Protobuf.TestProtos {
public
string
MyString
{
get
{
return
myString_
;
}
set
{
myString_
=
value
??
""
;
myString_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -3385,7 +3385,7 @@ namespace Google.Protobuf.TestProtos {
public
string
Data
{
get
{
return
data_
;
}
set
{
data_
=
value
??
""
;
data_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -3589,7 +3589,7 @@ namespace Google.Protobuf.TestProtos {
public
pb
::
ByteString
Data
{
get
{
return
data_
;
}
set
{
data_
=
value
??
pb
::
ByteString
.
Empty
;
data_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -3695,7 +3695,7 @@ namespace Google.Protobuf.TestProtos {
public
pb
::
ByteString
Data
{
get
{
return
data_
;
}
set
{
data_
=
value
??
pb
::
ByteString
.
Empty
;
data_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -4350,7 +4350,7 @@ namespace Google.Protobuf.TestProtos {
public
string
FooString
{
get
{
return
fooCase_
==
FooOneofCase
.
FooString
?
(
string
)
foo_
:
""
;
}
set
{
foo_
=
value
??
""
;
foo_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
fooCase_
=
FooOneofCase
.
FooString
;
}
}
...
...
@@ -5409,7 +5409,7 @@ namespace Google.Protobuf.TestProtos {
public
string
A
{
get
{
return
a_
;
}
set
{
a_
=
value
??
""
;
a_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
This diff is collapsed.
Click to expand it.
csharp/src/Google.Protobuf/Collections/MapField.cs
View file @
bde01d53
...
...
@@ -112,13 +112,13 @@ namespace Google.Protobuf.Collections
public
bool
ContainsKey
(
TKey
key
)
{
ThrowHelper
.
ThrowIfNull
(
key
,
"key"
);
Preconditions
.
CheckNotNullUnconstrained
(
key
,
"key"
);
return
map
.
ContainsKey
(
key
);
}
public
bool
Remove
(
TKey
key
)
{
ThrowHelper
.
ThrowIfNull
(
key
,
"key"
);
Preconditions
.
CheckNotNullUnconstrained
(
key
,
"key"
);
LinkedListNode
<
KeyValuePair
<
TKey
,
TValue
>>
node
;
if
(
map
.
TryGetValue
(
key
,
out
node
))
{
...
...
@@ -151,7 +151,7 @@ namespace Google.Protobuf.Collections
{
get
{
ThrowHelper
.
ThrowIfNull
(
key
,
"key"
);
Preconditions
.
CheckNotNullUnconstrained
(
key
,
"key"
);
TValue
value
;
if
(
TryGetValue
(
key
,
out
value
))
{
...
...
@@ -161,11 +161,11 @@ namespace Google.Protobuf.Collections
}
set
{
ThrowHelper
.
ThrowIfNull
(
key
,
"key"
);
Preconditions
.
CheckNotNullUnconstrained
(
key
,
"key"
);
// value == null check here is redundant, but avoids boxing.
if
(
value
==
null
&&
!
allowNullValues
)
{
ThrowHelper
.
ThrowIfNull
(
value
,
"value"
);
Preconditions
.
CheckNotNullUnconstrained
(
value
,
"value"
);
}
LinkedListNode
<
KeyValuePair
<
TKey
,
TValue
>>
node
;
var
pair
=
new
KeyValuePair
<
TKey
,
TValue
>(
key
,
value
);
...
...
@@ -187,7 +187,7 @@ namespace Google.Protobuf.Collections
public
void
Add
(
IDictionary
<
TKey
,
TValue
>
entries
)
{
ThrowHelper
.
ThrowIf
Null
(
entries
,
"entries"
);
Preconditions
.
CheckNot
Null
(
entries
,
"entries"
);
foreach
(
var
pair
in
entries
)
{
Add
(
pair
.
Key
,
pair
.
Value
);
...
...
@@ -374,7 +374,7 @@ namespace Google.Protobuf.Collections
void
IDictionary
.
Remove
(
object
key
)
{
ThrowHelper
.
ThrowIf
Null
(
key
,
"key"
);
Preconditions
.
CheckNot
Null
(
key
,
"key"
);
if
(!(
key
is
TKey
))
{
return
;
...
...
@@ -403,7 +403,7 @@ namespace Google.Protobuf.Collections
{
get
{
ThrowHelper
.
ThrowIf
Null
(
key
,
"key"
);
Preconditions
.
CheckNot
Null
(
key
,
"key"
);
if
(!(
key
is
TKey
))
{
return
null
;
...
...
This diff is collapsed.
Click to expand it.
csharp/src/Google.Protobuf/Google.Protobuf.csproj
View file @
bde01d53
...
...
@@ -96,7 +96,7 @@
<Compile
Include=
"Reflection\RepeatedFieldAccessor.cs"
/>
<Compile
Include=
"Reflection\ServiceDescriptor.cs"
/>
<Compile
Include=
"Reflection\SingleFieldAccessor.cs"
/>
<Compile
Include=
"
ThrowHelper
.cs"
/>
<Compile
Include=
"
Preconditions
.cs"
/>
<Compile
Include=
"WellKnownTypes\Any.cs"
/>
<Compile
Include=
"WellKnownTypes\Api.cs"
/>
<Compile
Include=
"WellKnownTypes\Duration.cs"
/>
...
...
This diff is collapsed.
Click to expand it.
csharp/src/Google.Protobuf/JsonFormatter.cs
View file @
bde01d53
...
...
@@ -120,7 +120,7 @@ namespace Google.Protobuf
public
string
Format
(
IMessage
message
)
{
ThrowHelper
.
ThrowIf
Null
(
message
,
"message"
);
Preconditions
.
CheckNot
Null
(
message
,
"message"
);
StringBuilder
builder
=
new
StringBuilder
();
// TODO(jonskeet): Handle well-known types here.
// Our reflection support needs improving so that we can get at the descriptor
...
...
This diff is collapsed.
Click to expand it.
csharp/src/Google.Protobuf/MessageExtensions.cs
View file @
bde01d53
...
...
@@ -41,8 +41,8 @@ namespace Google.Protobuf
{
public
static
void
MergeFrom
(
this
IMessage
message
,
byte
[]
data
)
{
ThrowHelper
.
ThrowIf
Null
(
message
,
"message"
);
ThrowHelper
.
ThrowIf
Null
(
data
,
"data"
);
Preconditions
.
CheckNot
Null
(
message
,
"message"
);
Preconditions
.
CheckNot
Null
(
data
,
"data"
);
CodedInputStream
input
=
CodedInputStream
.
CreateInstance
(
data
);
message
.
MergeFrom
(
input
);
input
.
CheckLastTagWas
(
0
);
...
...
@@ -50,8 +50,8 @@ namespace Google.Protobuf
public
static
void
MergeFrom
(
this
IMessage
message
,
ByteString
data
)
{
ThrowHelper
.
ThrowIf
Null
(
message
,
"message"
);
ThrowHelper
.
ThrowIf
Null
(
data
,
"data"
);
Preconditions
.
CheckNot
Null
(
message
,
"message"
);
Preconditions
.
CheckNot
Null
(
data
,
"data"
);
CodedInputStream
input
=
data
.
CreateCodedInput
();
message
.
MergeFrom
(
input
);
input
.
CheckLastTagWas
(
0
);
...
...
@@ -59,8 +59,8 @@ namespace Google.Protobuf
public
static
void
MergeFrom
(
this
IMessage
message
,
Stream
input
)
{
ThrowHelper
.
ThrowIf
Null
(
message
,
"message"
);
ThrowHelper
.
ThrowIf
Null
(
input
,
"input"
);
Preconditions
.
CheckNot
Null
(
message
,
"message"
);
Preconditions
.
CheckNot
Null
(
input
,
"input"
);
CodedInputStream
codedInput
=
CodedInputStream
.
CreateInstance
(
input
);
message
.
MergeFrom
(
codedInput
);
codedInput
.
CheckLastTagWas
(
0
);
...
...
@@ -68,8 +68,8 @@ namespace Google.Protobuf
public
static
void
MergeDelimitedFrom
(
this
IMessage
message
,
Stream
input
)
{
ThrowHelper
.
ThrowIf
Null
(
message
,
"message"
);
ThrowHelper
.
ThrowIf
Null
(
input
,
"input"
);
Preconditions
.
CheckNot
Null
(
message
,
"message"
);
Preconditions
.
CheckNot
Null
(
input
,
"input"
);
int
size
=
(
int
)
CodedInputStream
.
ReadRawVarint32
(
input
);
Stream
limitedStream
=
new
LimitedInputStream
(
input
,
size
);
message
.
MergeFrom
(
limitedStream
);
...
...
@@ -77,7 +77,7 @@ namespace Google.Protobuf
public
static
byte
[]
ToByteArray
(
this
IMessage
message
)
{
ThrowHelper
.
ThrowIf
Null
(
message
,
"message"
);
Preconditions
.
CheckNot
Null
(
message
,
"message"
);
byte
[]
result
=
new
byte
[
message
.
CalculateSize
()];
CodedOutputStream
output
=
CodedOutputStream
.
CreateInstance
(
result
);
message
.
WriteTo
(
output
);
...
...
@@ -87,8 +87,8 @@ namespace Google.Protobuf
public
static
void
WriteTo
(
this
IMessage
message
,
Stream
output
)
{
ThrowHelper
.
ThrowIf
Null
(
message
,
"message"
);
ThrowHelper
.
ThrowIf
Null
(
output
,
"output"
);
Preconditions
.
CheckNot
Null
(
message
,
"message"
);
Preconditions
.
CheckNot
Null
(
output
,
"output"
);
CodedOutputStream
codedOutput
=
CodedOutputStream
.
CreateInstance
(
output
);
message
.
WriteTo
(
codedOutput
);
codedOutput
.
Flush
();
...
...
@@ -96,8 +96,8 @@ namespace Google.Protobuf
public
static
void
WriteDelimitedTo
(
this
IMessage
message
,
Stream
output
)
{
ThrowHelper
.
ThrowIf
Null
(
message
,
"message"
);
ThrowHelper
.
ThrowIf
Null
(
output
,
"output"
);
Preconditions
.
CheckNot
Null
(
message
,
"message"
);
Preconditions
.
CheckNot
Null
(
output
,
"output"
);
CodedOutputStream
codedOutput
=
CodedOutputStream
.
CreateInstance
(
output
);
codedOutput
.
WriteRawVarint32
((
uint
)
message
.
CalculateSize
());
message
.
WriteTo
(
codedOutput
);
...
...
@@ -106,7 +106,7 @@ namespace Google.Protobuf
public
static
ByteString
ToByteString
(
this
IMessage
message
)
{
ThrowHelper
.
ThrowIf
Null
(
message
,
"message"
);
Preconditions
.
CheckNot
Null
(
message
,
"message"
);
return
ByteString
.
AttachBytes
(
message
.
ToByteArray
());
}
}
...
...
This diff is collapsed.
Click to expand it.
csharp/src/Google.Protobuf/MessageParser.cs
View file @
bde01d53
...
...
@@ -84,7 +84,7 @@ namespace Google.Protobuf
/// <returns>The newly parsed message.</returns>
public
T
ParseFrom
(
byte
[]
data
)
{
ThrowHelper
.
ThrowIf
Null
(
data
,
"data"
);
Preconditions
.
CheckNot
Null
(
data
,
"data"
);
T
message
=
factory
();
message
.
MergeFrom
(
data
);
return
message
;
...
...
@@ -92,7 +92,7 @@ namespace Google.Protobuf
public
T
ParseFrom
(
ByteString
data
)
{
ThrowHelper
.
ThrowIf
Null
(
data
,
"data"
);
Preconditions
.
CheckNot
Null
(
data
,
"data"
);
T
message
=
factory
();
message
.
MergeFrom
(
data
);
return
message
;
...
...
This diff is collapsed.
Click to expand it.
csharp/src/Google.Protobuf/
ThrowHelper
.cs
→
csharp/src/Google.Protobuf/
Preconditions
.cs
View file @
bde01d53
#
region
Copyright
notice
and
license
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#endregion
using
System
;
namespace
Google.Protobuf
{
/// <summary>
/// Helper methods for throwing exceptions
/// </summary>
internal
static
class
ThrowHelper
{
/// <summary>
/// Throws an ArgumentNullException if the given value is null.
/// </summary>
internal
static
void
ThrowIfNull
(
object
value
,
string
name
)
{
if
(
value
==
null
)
{
throw
new
ArgumentNullException
(
name
);
}
}
}
#
region
Copyright
notice
and
license
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#endregion
using
System
;
namespace
Google.Protobuf
{
/// <summary>
/// Helper methods for throwing exceptions
/// </summary>
public
static
class
Preconditions
{
/// <summary>
/// Throws an ArgumentNullException if the given value is null, otherwise
/// return the value to the caller.
/// </summary>
public
static
T
CheckNotNull
<
T
>(
T
value
,
string
name
)
where
T
:
class
{
if
(
value
==
null
)
{
throw
new
ArgumentNullException
(
name
);
}
return
value
;
}
/// <summary>
/// Throws an ArgumentNullException if the given value is null, otherwise
/// return the value to the caller.
/// </summary>
/// <remarks>
/// This is equivalent to <see cref="CheckNotNull"/> but without the type parameter
/// constraint. In most cases, the constraint is useful to prevent you from calling CheckNotNull
/// with a value type - but it gets in the way if either you want to use it with a nullable
/// value type, or you want to use it with an unconstrained type parameter.
/// </remarks>
internal
static
T
CheckNotNullUnconstrained
<
T
>(
T
value
,
string
name
)
{
if
(
value
==
null
)
{
throw
new
ArgumentNullException
(
name
);
}
return
value
;
}
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
csharp/src/Google.Protobuf/Reflection/DescriptorProtoFile.cs
View file @
bde01d53
...
...
@@ -301,7 +301,7 @@ namespace Google.Protobuf.Reflection {
internal
string
Name
{
get
{
return
name_
;
}
set
{
name_
=
value
??
""
;
name_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -310,7 +310,7 @@ namespace Google.Protobuf.Reflection {
internal
string
Package
{
get
{
return
package_
;
}
set
{
package_
=
value
??
""
;
package_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -393,7 +393,7 @@ namespace Google.Protobuf.Reflection {
internal
string
Syntax
{
get
{
return
syntax_
;
}
set
{
syntax_
=
value
??
""
;
syntax_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -649,7 +649,7 @@ namespace Google.Protobuf.Reflection {
internal
string
Name
{
get
{
return
name_
;
}
set
{
name_
=
value
??
""
;
name_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -1200,7 +1200,7 @@ namespace Google.Protobuf.Reflection {
internal
string
Name
{
get
{
return
name_
;
}
set
{
name_
=
value
??
""
;
name_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -1236,7 +1236,7 @@ namespace Google.Protobuf.Reflection {
internal
string
TypeName
{
get
{
return
typeName_
;
}
set
{
typeName_
=
value
??
""
;
typeName_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -1245,7 +1245,7 @@ namespace Google.Protobuf.Reflection {
internal
string
Extendee
{
get
{
return
extendee_
;
}
set
{
extendee_
=
value
??
""
;
extendee_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -1254,7 +1254,7 @@ namespace Google.Protobuf.Reflection {
internal
string
DefaultValue
{
get
{
return
defaultValue_
;
}
set
{
defaultValue_
=
value
??
""
;
defaultValue_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -1545,7 +1545,7 @@ namespace Google.Protobuf.Reflection {
internal
string
Name
{
get
{
return
name_
;
}
set
{
name_
=
value
??
""
;
name_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -1653,7 +1653,7 @@ namespace Google.Protobuf.Reflection {
internal
string
Name
{
get
{
return
name_
;
}
set
{
name_
=
value
??
""
;
name_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -1809,7 +1809,7 @@ namespace Google.Protobuf.Reflection {
internal
string
Name
{
get
{
return
name_
;
}
set
{
name_
=
value
??
""
;
name_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -1973,7 +1973,7 @@ namespace Google.Protobuf.Reflection {
internal
string
Name
{
get
{
return
name_
;
}
set
{
name_
=
value
??
""
;
name_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -2132,7 +2132,7 @@ namespace Google.Protobuf.Reflection {
internal
string
Name
{
get
{
return
name_
;
}
set
{
name_
=
value
??
""
;
name_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -2141,7 +2141,7 @@ namespace Google.Protobuf.Reflection {
internal
string
InputType
{
get
{
return
inputType_
;
}
set
{
inputType_
=
value
??
""
;
inputType_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -2150,7 +2150,7 @@ namespace Google.Protobuf.Reflection {
internal
string
OutputType
{
get
{
return
outputType_
;
}
set
{
outputType_
=
value
??
""
;
outputType_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -2383,7 +2383,7 @@ namespace Google.Protobuf.Reflection {
internal
string
JavaPackage
{
get
{
return
javaPackage_
;
}
set
{
javaPackage_
=
value
??
""
;
javaPackage_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -2392,7 +2392,7 @@ namespace Google.Protobuf.Reflection {
internal
string
JavaOuterClassname
{
get
{
return
javaOuterClassname_
;
}
set
{
javaOuterClassname_
=
value
??
""
;
javaOuterClassname_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -2437,7 +2437,7 @@ namespace Google.Protobuf.Reflection {
internal
string
GoPackage
{
get
{
return
goPackage_
;
}
set
{
goPackage_
=
value
??
""
;
goPackage_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -2491,7 +2491,7 @@ namespace Google.Protobuf.Reflection {
internal
string
ObjcClassPrefix
{
get
{
return
objcClassPrefix_
;
}
set
{
objcClassPrefix_
=
value
??
""
;
objcClassPrefix_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -2500,7 +2500,7 @@ namespace Google.Protobuf.Reflection {
internal
string
CsharpNamespace
{
get
{
return
csharpNamespace_
;
}
set
{
csharpNamespace_
=
value
??
""
;
csharpNamespace_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -3853,7 +3853,7 @@ namespace Google.Protobuf.Reflection {
internal
string
IdentifierValue
{
get
{
return
identifierValue_
;
}
set
{
identifierValue_
=
value
??
""
;
identifierValue_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -3889,7 +3889,7 @@ namespace Google.Protobuf.Reflection {
internal
pb
::
ByteString
StringValue
{
get
{
return
stringValue_
;
}
set
{
stringValue_
=
value
??
pb
::
ByteString
.
Empty
;
stringValue_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -3898,7 +3898,7 @@ namespace Google.Protobuf.Reflection {
internal
string
AggregateValue
{
get
{
return
aggregateValue_
;
}
set
{
aggregateValue_
=
value
??
""
;
aggregateValue_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -4095,7 +4095,7 @@ namespace Google.Protobuf.Reflection {
internal
string
NamePart_
{
get
{
return
namePart_
;
}
set
{
namePart_
=
value
??
""
;
namePart_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -4350,7 +4350,7 @@ namespace Google.Protobuf.Reflection {
internal
string
LeadingComments
{
get
{
return
leadingComments_
;
}
set
{
leadingComments_
=
value
??
""
;
leadingComments_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -4359,7 +4359,7 @@ namespace Google.Protobuf.Reflection {
internal
string
TrailingComments
{
get
{
return
trailingComments_
;
}
set
{
trailingComments_
=
value
??
""
;
trailingComments_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
This diff is collapsed.
Click to expand it.
csharp/src/Google.Protobuf/WellKnownTypes/Any.cs
View file @
bde01d53
...
...
@@ -71,7 +71,7 @@ namespace Google.Protobuf.WellKnownTypes {
public
string
TypeUrl
{
get
{
return
typeUrl_
;
}
set
{
typeUrl_
=
value
??
""
;
typeUrl_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -80,7 +80,7 @@ namespace Google.Protobuf.WellKnownTypes {
public
pb
::
ByteString
Value
{
get
{
return
value_
;
}
set
{
value_
=
value
??
pb
::
ByteString
.
Empty
;
value_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
This diff is collapsed.
Click to expand it.
csharp/src/Google.Protobuf/WellKnownTypes/Api.cs
View file @
bde01d53
...
...
@@ -84,7 +84,7 @@ namespace Google.Protobuf.WellKnownTypes {
public
string
Name
{
get
{
return
name_
;
}
set
{
name_
=
value
??
""
;
name_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -109,7 +109,7 @@ namespace Google.Protobuf.WellKnownTypes {
public
string
Version
{
get
{
return
version_
;
}
set
{
version_
=
value
??
""
;
version_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -285,7 +285,7 @@ namespace Google.Protobuf.WellKnownTypes {
public
string
Name
{
get
{
return
name_
;
}
set
{
name_
=
value
??
""
;
name_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -294,7 +294,7 @@ namespace Google.Protobuf.WellKnownTypes {
public
string
RequestTypeUrl
{
get
{
return
requestTypeUrl_
;
}
set
{
requestTypeUrl_
=
value
??
""
;
requestTypeUrl_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -312,7 +312,7 @@ namespace Google.Protobuf.WellKnownTypes {
public
string
ResponseTypeUrl
{
get
{
return
responseTypeUrl_
;
}
set
{
responseTypeUrl_
=
value
??
""
;
responseTypeUrl_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
This diff is collapsed.
Click to expand it.
csharp/src/Google.Protobuf/WellKnownTypes/SourceContext.cs
View file @
bde01d53
...
...
@@ -71,7 +71,7 @@ namespace Google.Protobuf.WellKnownTypes {
public
string
FileName
{
get
{
return
fileName_
;
}
set
{
fileName_
=
value
??
""
;
fileName_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
This diff is collapsed.
Click to expand it.
csharp/src/Google.Protobuf/WellKnownTypes/Struct.cs
View file @
bde01d53
...
...
@@ -224,7 +224,7 @@ namespace Google.Protobuf.WellKnownTypes {
public
string
StringValue
{
get
{
return
kindCase_
==
KindOneofCase
.
StringValue
?
(
string
)
kind_
:
""
;
}
set
{
kind_
=
value
??
""
;
kind_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
kindCase_
=
KindOneofCase
.
StringValue
;
}
}
...
...
This diff is collapsed.
Click to expand it.
csharp/src/Google.Protobuf/WellKnownTypes/Type.cs
View file @
bde01d53
...
...
@@ -105,7 +105,7 @@ namespace Google.Protobuf.WellKnownTypes {
public
string
Name
{
get
{
return
name_
;
}
set
{
name_
=
value
??
""
;
name_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -327,7 +327,7 @@ namespace Google.Protobuf.WellKnownTypes {
public
string
Name
{
get
{
return
name_
;
}
set
{
name_
=
value
??
""
;
name_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -336,7 +336,7 @@ namespace Google.Protobuf.WellKnownTypes {
public
string
TypeUrl
{
get
{
return
typeUrl_
;
}
set
{
typeUrl_
=
value
??
""
;
typeUrl_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -610,7 +610,7 @@ namespace Google.Protobuf.WellKnownTypes {
public
string
Name
{
get
{
return
name_
;
}
set
{
name_
=
value
??
""
;
name_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -783,7 +783,7 @@ namespace Google.Protobuf.WellKnownTypes {
public
string
Name
{
get
{
return
name_
;
}
set
{
name_
=
value
??
""
;
name_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -932,7 +932,7 @@ namespace Google.Protobuf.WellKnownTypes {
public
string
Name
{
get
{
return
name_
;
}
set
{
name_
=
value
??
""
;
name_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
This diff is collapsed.
Click to expand it.
csharp/src/Google.Protobuf/WellKnownTypes/Wrappers.cs
View file @
bde01d53
...
...
@@ -822,7 +822,7 @@ namespace Google.Protobuf.WellKnownTypes {
public
string
Value
{
get
{
return
value_
;
}
set
{
value_
=
value
??
""
;
value_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
@@ -928,7 +928,7 @@ namespace Google.Protobuf.WellKnownTypes {
public
pb
::
ByteString
Value
{
get
{
return
value_
;
}
set
{
value_
=
value
??
pb
::
ByteString
.
Empty
;
value_
=
pb
::
Preconditions
.
CheckNotNull
(
value
,
"value"
)
;
}
}
...
...
This diff is collapsed.
Click to expand it.
src/google/protobuf/compiler/csharp/csharp_field_base.cc
View file @
bde01d53
...
...
@@ -127,17 +127,6 @@ void FieldGeneratorBase::AddDeprecatedFlag(io::Printer* printer) {
}
}
void
FieldGeneratorBase
::
AddNullCheck
(
io
::
Printer
*
printer
)
{
AddNullCheck
(
printer
,
"value"
);
}
void
FieldGeneratorBase
::
AddNullCheck
(
io
::
Printer
*
printer
,
const
std
::
string
&
name
)
{
if
(
is_nullable_type
())
{
printer
->
Print
(
" pb::ThrowHelper.ThrowIfNull($name$,
\"
$name$
\"
);
\n
"
,
"name"
,
name
);
}
}
void
FieldGeneratorBase
::
AddPublicMemberAttributes
(
io
::
Printer
*
printer
)
{
AddDeprecatedFlag
(
printer
);
}
...
...
This diff is collapsed.
Click to expand it.
src/google/protobuf/compiler/csharp/csharp_primitive_field.cc
View file @
bde01d53
...
...
@@ -81,7 +81,7 @@ void PrimitiveFieldGenerator::GenerateMembers(io::Printer* printer) {
}
else
{
printer
->
Print
(
variables_
,
" $name$_ =
value ?? $default_value$
;
\n
"
);
" $name$_ =
pb::Preconditions.CheckNotNull(value,
\"
value
\"
)
;
\n
"
);
}
printer
->
Print
(
" }
\n
"
...
...
@@ -183,7 +183,7 @@ void PrimitiveOneofFieldGenerator::GenerateMembers(io::Printer* printer) {
}
else
{
printer
->
Print
(
variables_
,
" $oneof_name$_ =
value ?? $default_value$
;
\n
"
);
" $oneof_name$_ =
pb::Preconditions.CheckNotNull(value,
\"
value
\"
)
;
\n
"
);
}
printer
->
Print
(
variables_
,
...
...
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