diff options
author | csharptest <roger@csharptest.net> | 2012-10-14 18:47:48 -0500 |
---|---|---|
committer | rogerk <devnull@localhost> | 2012-10-14 18:47:48 -0500 |
commit | 6716432ca60b1ad53b20165d9bc29f853fcf1deb (patch) | |
tree | f46d00d19039aa442ca361f46cfc33bf80e09d8f /src/ProtocolBuffers | |
parent | 0f56b842987dce4699be8a4e9e3cb353497a305a (diff) | |
download | protobuf-6716432ca60b1ad53b20165d9bc29f853fcf1deb.tar.gz protobuf-6716432ca60b1ad53b20165d9bc29f853fcf1deb.tar.bz2 protobuf-6716432ca60b1ad53b20165d9bc29f853fcf1deb.zip |
Last (hopefully) changes to pre-processing directives
Diffstat (limited to 'src/ProtocolBuffers')
-rw-r--r-- | src/ProtocolBuffers/CodedInputStream.cs | 17 | ||||
-rw-r--r-- | src/ProtocolBuffers/CodedOutputStream.cs | 22 | ||||
-rw-r--r-- | src/ProtocolBuffers/CustomSerialization.cs | 2 | ||||
-rw-r--r-- | src/ProtocolBuffers/FrameworkPortability.cs | 22 |
4 files changed, 25 insertions, 38 deletions
diff --git a/src/ProtocolBuffers/CodedInputStream.cs b/src/ProtocolBuffers/CodedInputStream.cs index 230c585c..e4d690b5 100644 --- a/src/ProtocolBuffers/CodedInputStream.cs +++ b/src/ProtocolBuffers/CodedInputStream.cs @@ -231,22 +231,7 @@ namespace Google.ProtocolBuffers /// </summary>
public bool ReadDouble(ref double value)
{
-#if SILVERLIGHT || COMPACT_FRAMEWORK
- if (BitConverter.IsLittleEndian && 8 <= bufferSize - bufferPos)
- {
- value = BitConverter.ToDouble(buffer, bufferPos);
- bufferPos += 8;
- }
- else
- {
- byte[] rawBytes = ReadRawBytes(8);
- if (!BitConverter.IsLittleEndian)
- ByteArray.Reverse(rawBytes);
- value = BitConverter.ToDouble(rawBytes, 0);
- }
-#else
- value = BitConverter.Int64BitsToDouble((long) ReadRawLittleEndian64());
-#endif
+ value = FrameworkPortability.Int64ToDouble((long) ReadRawLittleEndian64());
return true;
}
diff --git a/src/ProtocolBuffers/CodedOutputStream.cs b/src/ProtocolBuffers/CodedOutputStream.cs index f4d637c1..b6a501c4 100644 --- a/src/ProtocolBuffers/CodedOutputStream.cs +++ b/src/ProtocolBuffers/CodedOutputStream.cs @@ -496,27 +496,7 @@ namespace Google.ProtocolBuffers /// </summary>
public void WriteDoubleNoTag(double value)
{
-#if SILVERLIGHT || COMPACT_FRAMEWORK
- byte[] rawBytes = BitConverter.GetBytes(value);
- if (!BitConverter.IsLittleEndian)
- ByteArray.Reverse(rawBytes);
-
- if (limit - position >= 8)
- {
- buffer[position++] = rawBytes[0];
- buffer[position++] = rawBytes[1];
- buffer[position++] = rawBytes[2];
- buffer[position++] = rawBytes[3];
- buffer[position++] = rawBytes[4];
- buffer[position++] = rawBytes[5];
- buffer[position++] = rawBytes[6];
- buffer[position++] = rawBytes[7];
- }
- else
- WriteRawBytes(rawBytes, 0, 8);
-#else
- WriteRawLittleEndian64((ulong) BitConverter.DoubleToInt64Bits(value));
-#endif
+ WriteRawLittleEndian64((ulong)FrameworkPortability.DoubleToInt64(value));
}
/// <summary>
diff --git a/src/ProtocolBuffers/CustomSerialization.cs b/src/ProtocolBuffers/CustomSerialization.cs index a1aee029..d3904113 100644 --- a/src/ProtocolBuffers/CustomSerialization.cs +++ b/src/ProtocolBuffers/CustomSerialization.cs @@ -34,7 +34,7 @@ #endregion
/*
- * This entire source file is not supported on the Silverlight platform
+ * This entire source file is not supported on some platform
*/
#if !NOSERIALIZABLE
diff --git a/src/ProtocolBuffers/FrameworkPortability.cs b/src/ProtocolBuffers/FrameworkPortability.cs index 78b7db31..fee8fbac 100644 --- a/src/ProtocolBuffers/FrameworkPortability.cs +++ b/src/ProtocolBuffers/FrameworkPortability.cs @@ -63,6 +63,28 @@ namespace Google.ProtocolBuffers get { return CultureInfo.InvariantCulture; }
}
+ internal static double Int64ToDouble(long value)
+ {
+#if CLIENTPROFILE
+ return BitConverter.Int64BitsToDouble(value);
+#else
+ double[] arresult = new double[1];
+ Buffer.BlockCopy(new[] { value }, 0, arresult, 0, 8);
+ return arresult[0];
+#endif
+ }
+
+ internal static long DoubleToInt64(double value)
+ {
+#if CLIENTPROFILE
+ return BitConverter.DoubleToInt64Bits(value);
+#else
+ long[] arresult = new long[1];
+ Buffer.BlockCopy(new[] { value }, 0, arresult, 0, 8);
+ return arresult[0];
+#endif
+ }
+
internal static bool TryParseInt32(string text, out int number)
{
return TryParseInt32(text, NumberStyles.Any, InvariantCulture, out number);
|