| 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;
 
-  		}
 
- 	}
 
- }
 
 
  |