LCOV - code coverage report
Current view: top level - mfbt - HashFunctions.cpp (source / functions) Hit Total Coverage
Test: output.info Lines: 10 10 100.0 %
Date: 2017-07-14 16:53:18 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
       2             : /* vim: set ts=8 sts=2 et sw=2 tw=80: */
       3             : /* This Source Code Form is subject to the terms of the Mozilla Public
       4             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       5             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       6             : 
       7             : /* Implementations of hash functions. */
       8             : 
       9             : #include "mozilla/HashFunctions.h"
      10             : #include "mozilla/Types.h"
      11             : 
      12             : #include <string.h>
      13             : 
      14             : namespace mozilla {
      15             : 
      16             : uint32_t
      17       38216 : HashBytes(const void* aBytes, size_t aLength)
      18             : {
      19       38216 :   uint32_t hash = 0;
      20       38216 :   const char* b = reinterpret_cast<const char*>(aBytes);
      21             : 
      22             :   /* Walk word by word. */
      23       38216 :   size_t i = 0;
      24     1342202 :   for (; i < aLength - (aLength % sizeof(size_t)); i += sizeof(size_t)) {
      25             :     /* Do an explicitly unaligned load of the data. */
      26             :     size_t data;
      27      651993 :     memcpy(&data, b + i, sizeof(size_t));
      28             : 
      29      651993 :     hash = AddToHash(hash, data, sizeof(data));
      30             :   }
      31             : 
      32             :   /* Get the remaining bytes. */
      33      192262 :   for (; i < aLength; i++) {
      34       77023 :     hash = AddToHash(hash, b[i]);
      35             :   }
      36       38216 :   return hash;
      37             : }
      38             : 
      39             : } /* namespace mozilla */

Generated by: LCOV version 1.13