public static XXH_errorcode XXH64_update_endian()

in csharp/src/XxHash.cs [1029:1093]


		public static XXH_errorcode XXH64_update_endian(XXH64_state_t state, void* input, size_t len/*, XXH_endianess endian*/)
		{
			BYTE* p = (BYTE*)input;
			BYTE* bEnd = p + len;

			//#ifdef XXH_ACCEPT_NULL_INPUT_POINTER
			//    if (input==NULL) return XXH_ERROR;
			//#endif

			state.total_len += len;

			if (state.memsize + len < 32)
			{
				/* fill in tmp buffer */
				XXH_memcpy(((BYTE*)state.mem64) + state.memsize, input, len);
				state.memsize += (U32)len;
				return XXH_errorcode.XXH_OK;
			}

			if (state.memsize != 0)
			{
				/* tmp buffer is full */
				XXH_memcpy(((BYTE*)state.mem64) + state.memsize, input, 32 - state.memsize);
				state.v1 = XXH64_round(state.v1, XXH_readLE64(state.mem64 + 0 /*, endian*/));
				state.v2 = XXH64_round(state.v2, XXH_readLE64(state.mem64 + 1 /*, endian*/));
				state.v3 = XXH64_round(state.v3, XXH_readLE64(state.mem64 + 2 /*, endian*/));
				state.v4 = XXH64_round(state.v4, XXH_readLE64(state.mem64 + 3 /*, endian*/));
				p += 32 - state.memsize;
				state.memsize = 0;
			}

			if (p + 32 <= bEnd)
			{
				BYTE* limit = bEnd - 32;
				U64 v1 = state.v1;
				U64 v2 = state.v2;
				U64 v3 = state.v3;
				U64 v4 = state.v4;

				do
				{
					v1 = XXH64_round(v1, XXH_readLE64(p /*, endian*/));
					p += 8;
					v2 = XXH64_round(v2, XXH_readLE64(p /*, endian*/));
					p += 8;
					v3 = XXH64_round(v3, XXH_readLE64(p /*, endian*/));
					p += 8;
					v4 = XXH64_round(v4, XXH_readLE64(p /*, endian*/));
					p += 8;
				} while (p <= limit);

				state.v1 = v1;
				state.v2 = v2;
				state.v3 = v3;
				state.v4 = v4;
			}

			if (p < bEnd)
			{
				XXH_memcpy(state.mem64, p, (size_t)(bEnd - p));
				state.memsize = (uint)(bEnd - p);
			}

			return XXH_errorcode.XXH_OK;
		}