hash_block Subroutine

private subroutine hash_block(u, pos, n, h)

Hash a single file block at a specific stream position.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: u
integer(kind=int64), intent(in) :: pos
integer, intent(in) :: n
integer(kind=int64), intent(inout) :: h

Calls

proc~~hash_block~~CallsGraph proc~hash_block hash_block proc~fnv1a_mix_i64 fnv1a_mix_i64 proc~hash_block->proc~fnv1a_mix_i64

Called by

proc~~hash_block~~CalledByGraph proc~hash_block hash_block proc~file_fingerprint file_fingerprint proc~file_fingerprint->proc~hash_block proc~init_fingerprints init_fingerprints proc~init_fingerprints->proc~file_fingerprint proc~manifest_key_from_files manifest_key_from_files proc~manifest_key_from_files->proc~file_fingerprint proc~scan_changes scan_changes proc~scan_changes->proc~file_fingerprint proc~handle_manifest_change handle_manifest_change proc~handle_manifest_change->proc~manifest_key_from_files proc~rebuild_watch_list rebuild_watch_list proc~handle_manifest_change->proc~rebuild_watch_list proc~rebuild_watch_list->proc~init_fingerprints proc~rebuild_watch_list->proc~manifest_key_from_files proc~watcher_run watcher_t%watcher_run proc~watcher_run->proc~scan_changes proc~watcher_run->proc~handle_manifest_change proc~watcher_run->proc~rebuild_watch_list proc~watcher_init watcher_t%watcher_init proc~watcher_init->proc~rebuild_watch_list

Source Code

   subroutine hash_block(u, pos, n, h)
      integer, intent(in) :: u
      integer(int64), intent(in) :: pos
      integer, intent(in) :: n
      integer(int64), intent(inout) :: h

      integer :: ios, i

      if (n <= 0) return
      read(u, pos=pos, iostat=ios) io_buf(1:n)
      if (ios == 0) then
         do i = 1, n
            call fnv1a_mix_i64(h, int(iachar(io_buf(i)), int64))
         end do
      end if
   end subroutine hash_block