浏览代码

Last (hopefully) changes to pre-processing directives

csharptest 13 年之前
父节点
当前提交
6716432ca6

+ 1 - 1
lib/NUnit-config/Microsoft.VisualStudio.TestTools.cs

@@ -1,6 +1,6 @@
 
 using System;
-#if !SILVERLIGHT && !COMPACT_FRAMEWORK
+#if CLIENTPROFILE
 namespace Microsoft.VisualStudio.TestTools.UnitTesting
 {
     [AttributeUsage(AttributeTargets.Class, Inherited = true, AllowMultiple = false)]

+ 1 - 1
src/ProtocolBuffers.Test/SerializableAttribute.cs

@@ -1,4 +1,4 @@
-#if SILVERLIGHT
+#if NOSERIALIZABLE && !COMPACT_FRAMEWORK
 
 namespace System
 {

+ 1 - 16
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;
         }
 

+ 1 - 21
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>

+ 1 - 1
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
 

+ 22 - 0
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);

+ 3 - 1
src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj

@@ -69,6 +69,9 @@
     <Compile Include="..\ProtocolBuffers.Test\Properties\AssemblyInfo.cs">
       <Link>Properties\AssemblyInfo.cs</Link>
     </Compile>
+    <Compile Include="..\ProtocolBuffers.Test\SerializableAttribute.cs">
+      <Link>SerializableAttribute.cs</Link>
+    </Compile>
     <Compile Include="..\ProtocolBuffers.Test\TestRpcForMimeTypes.cs">
       <Link>TestRpcForMimeTypes.cs</Link>
     </Compile>
@@ -80,7 +83,6 @@
     <Compile Include="ExtendableBuilderLiteTest.cs" />
     <Compile Include="ExtendableMessageLiteTest.cs" />
     <Compile Include="LiteTest.cs" />
-    <Compile Include="SerializableAttribute.cs" />
     <Compile Include="SerializableLiteTest.cs" />
     <Compile Include="TestLiteByApi.cs" />
     <Compile Include="TestProtos\UnitTestExtrasLiteProtoFile.cs" />

+ 3 - 1
src/ProtocolBuffersLite.Test/ProtocolBuffersLiteMixed.Test.csproj

@@ -69,6 +69,9 @@
     <Compile Include="..\ProtocolBuffers.Test\Properties\AssemblyInfo.cs">
       <Link>Properties\AssemblyInfo.cs</Link>
     </Compile>
+    <Compile Include="..\ProtocolBuffers.Test\SerializableAttribute.cs">
+      <Link>SerializableAttribute.cs</Link>
+    </Compile>
     <Compile Include="AbstractBuilderLiteTest.cs" />
     <Compile Include="AbstractMessageLiteTest.cs" />
     <Compile Include="ExtendableBuilderLiteTest.cs" />
@@ -76,7 +79,6 @@
     <Compile Include="InteropLiteTest.cs" />
     <Compile Include="LiteTest.cs" />
     <Compile Include="MissingFieldAndExtensionTest.cs" />
-    <Compile Include="SerializableAttribute.cs" />
     <Compile Include="TestLiteByApi.cs" />
     <Compile Include="TestProtos\UnitTestExtrasFullProtoFile.cs" />
     <Compile Include="TestProtos\UnitTestExtrasLiteProtoFile.cs" />

+ 0 - 12
src/ProtocolBuffersLite.Test/SerializableAttribute.cs

@@ -1,12 +0,0 @@
-#if SILVERLIGHT
-
-namespace System
-{
-    [AttributeUsage(AttributeTargets.Class)]
-    public class SerializableAttribute : Attribute
-    {
-        public SerializableAttribute () : base() { }
-    }
-}
-
-#endif

+ 1 - 1
src/ProtocolBuffersLite.Test/SerializableLiteTest.cs

@@ -1,5 +1,5 @@
 using System;
-#if !SILVERLIGHT && !COMPACT_FRAMEWORK
+#if !NOSERIALIZABLE
 using System.Collections.Generic;
 using System.IO;
 using System.Runtime.Serialization;