@@ -1015,9 +1015,7 @@ private ChromatogramType TraceToChromatogram(ChromatogramSignal trace, string ch
10151015 var timesBinaryData =
10161016 new BinaryDataArrayType
10171017 {
1018- binary = ParseInput . NoZlibCompression
1019- ? Get64BitArray ( trace . Times )
1020- : GetZLib64BitArray ( trace . Times )
1018+ binary = ParseInput . NoZlibCompression ? Get64BitArray ( trace . Times ) : GetZLib64BitArray ( trace . Times )
10211019 } ;
10221020 timesBinaryData . encodedLength =
10231021 ( 4 * Math . Ceiling ( ( double ) timesBinaryData
@@ -1069,9 +1067,7 @@ private ChromatogramType TraceToChromatogram(ChromatogramSignal trace, string ch
10691067 var intensitiesBinaryData =
10701068 new BinaryDataArrayType
10711069 {
1072- binary = ParseInput . NoZlibCompression
1073- ? Get64BitArray ( trace . Intensities )
1074- : GetZLib64BitArray ( trace . Intensities )
1070+ binary = ParseInput . NoZlibCompression ? Get64BitArray ( trace . Intensities ) : GetZLib64BitArray ( trace . Intensities )
10751071 } ;
10761072 intensitiesBinaryData . encodedLength =
10771073 ( 4 * Math . Ceiling ( ( double ) intensitiesBinaryData
@@ -1454,9 +1450,7 @@ private SpectrumType ConstructMSSpectrum(int scanNumber)
14541450 var massesBinaryData =
14551451 new BinaryDataArrayType
14561452 {
1457- binary = masses . Length > 0
1458- ? ParseInput . NoZlibCompression ? Get64BitArray ( masses ) : GetZLib64BitArray ( masses )
1459- : new byte [ 0 ] // zero length array encoded by GZip produces non-zero length array; some downstream tools do not like it
1453+ binary = ParseInput . NoZlibCompression ? Get64BitArray ( masses ) : GetZLib64BitArray ( masses )
14601454 } ;
14611455 massesBinaryData . encodedLength =
14621456 ( 4 * Math . Ceiling ( ( double ) massesBinaryData
@@ -1504,9 +1498,7 @@ private SpectrumType ConstructMSSpectrum(int scanNumber)
15041498 var intensitiesBinaryData =
15051499 new BinaryDataArrayType
15061500 {
1507- binary = intensities . Length > 0
1508- ? ParseInput . NoZlibCompression ? Get64BitArray ( intensities ) : GetZLib64BitArray ( intensities )
1509- : new byte [ 0 ] // zero length array encoded by GZip produces non-zero length array; some downstream tools do not like it
1501+ binary = ParseInput . NoZlibCompression ? Get64BitArray ( intensities ) : GetZLib64BitArray ( intensities )
15101502 } ;
15111503 intensitiesBinaryData . encodedLength =
15121504 ( 4 * Math . Ceiling ( ( double ) intensitiesBinaryData
@@ -1725,9 +1717,7 @@ private SpectrumType ConstructPDASpectrum(int scanNumber, int instrumentNumber)
17251717 var intensitiesBinaryData =
17261718 new BinaryDataArrayType
17271719 {
1728- binary = ParseInput . NoZlibCompression
1729- ? Get64BitArray ( intensities )
1730- : GetZLib64BitArray ( intensities )
1720+ binary = ParseInput . NoZlibCompression ? Get64BitArray ( intensities ) : GetZLib64BitArray ( intensities )
17311721 } ;
17321722 intensitiesBinaryData . encodedLength =
17331723 ( 4 * Math . Ceiling ( ( double ) intensitiesBinaryData
@@ -2294,7 +2284,7 @@ private ScanListType ConstructScanList(int scanNumber, Scan scan)
22942284 /// </summary>
22952285 /// <param name="array">the double collection</param>
22962286 /// <returns>the byte array</returns>
2297- private static byte [ ] Get64BitArray ( IEnumerable < double > array )
2287+ private static byte [ ] Get64BitArray ( ICollection < double > array )
22982288 {
22992289 byte [ ] bytes ;
23002290
@@ -2318,8 +2308,11 @@ private static byte[] Get64BitArray(IEnumerable<double> array)
23182308 /// </summary>
23192309 /// <param name="array">the double collection</param>
23202310 /// <returns>the byte array</returns>
2321- private static byte [ ] GetZLib64BitArray ( IEnumerable < double > array )
2311+ private static byte [ ] GetZLib64BitArray ( ICollection < double > array )
23222312 {
2313+ // zero length array encoded by GZip produces non-zero length array; some downstream tools do not like it
2314+ if ( array . Count == 0 ) return new byte [ 0 ] ;
2315+
23232316 byte [ ] bytes ;
23242317
23252318 using ( var memoryStream = new MemoryStream ( ) )
0 commit comments