| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | //// Author://   Jb Evain (jbevain@gmail.com)//// Copyright (c) 2008 - 2015 Jb Evain// Copyright (c) 2008 - 2011 Novell, Inc.//// Licensed under the MIT/X11 license.//using System;using System.Collections.Generic;namespace ILRuntime.Mono.Cecil.PE {	sealed class ByteBufferEqualityComparer : IEqualityComparer<ByteBuffer> {		public bool Equals (ByteBuffer x, ByteBuffer y)		{			if (x.length != y.length)				return false;			var x_buffer = x.buffer;			var y_buffer = y.buffer;			for (int i = 0; i < x.length; i++)				if (x_buffer [i] != y_buffer [i])					return false;			return true;		}		public int GetHashCode (ByteBuffer buffer)		{			// See http://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function			const int fnv_offset_bias = unchecked((int)2166136261);			const int fnv_prime = 16777619;			var hash_code = fnv_offset_bias;			var bytes = buffer.buffer;			for (int i = 0; i < buffer.length; i++)				hash_code = unchecked ((hash_code ^ bytes [i]) * fnv_prime);			return hash_code; 		}	}}
 |