Silverlight compatibility other than SortedList
diff --git a/src/ProtocolBuffers/CodedOutputStream.cs b/src/ProtocolBuffers/CodedOutputStream.cs
index e5f890f..241c4ac 100644
--- a/src/ProtocolBuffers/CodedOutputStream.cs
+++ b/src/ProtocolBuffers/CodedOutputStream.cs
@@ -114,9 +114,8 @@
/// Writes a double field value, including tag, to the stream.
/// </summary>
public void WriteDouble(int fieldNumber, double value) {
- // TODO(jonskeet): Test this on different endiannesses
WriteTag(fieldNumber, WireFormat.WireType.Fixed64);
- WriteRawLittleEndian64((ulong)BitConverter.DoubleToInt64Bits(value));
+ WriteDoubleNoTag(value);
}
/// <summary>
@@ -124,10 +123,7 @@
/// </summary>
public void WriteFloat(int fieldNumber, float value) {
WriteTag(fieldNumber, WireFormat.WireType.Fixed32);
- // TODO(jonskeet): Test this on different endiannesses
- byte[] rawBytes = BitConverter.GetBytes(value);
- uint asInteger = BitConverter.ToUInt32(rawBytes, 0);
- WriteRawLittleEndian32(asInteger);
+ WriteFloatNoTag(value);
}
/// <summary>
@@ -332,7 +328,13 @@
/// Writes a double field value, including tag, to the stream.
/// </summary>
public void WriteDoubleNoTag(double value) {
+ // TODO(jonskeet): Test this on different endiannesses
+#if SILVERLIGHT2
+ byte[] bytes = BitConverter.GetBytes(value);
+ WriteRawBytes(bytes, 0, 8);
+#else
WriteRawLittleEndian64((ulong)BitConverter.DoubleToInt64Bits(value));
+#endif
}
/// <summary>