dfs_mark_bool Subroutine

private recursive subroutine dfs_mark_bool(node, all, visited)

Uses

    • fpm_targets
  • proc~~dfs_mark_bool~~UsesGraph proc~dfs_mark_bool dfs_mark_bool fpm_targets fpm_targets proc~dfs_mark_bool->fpm_targets

Arguments

Type IntentOptional Attributes Name
type(build_target_t), intent(in), pointer :: node
type(build_target_ptr), intent(in) :: all(:)
logical, intent(inout) :: visited(:)

Calls

proc~~dfs_mark_bool~~CallsGraph proc~dfs_mark_bool dfs_mark_bool proc~dfs_mark_bool->proc~dfs_mark_bool dependencies dependencies proc~dfs_mark_bool->dependencies proc~find_ptr_index find_ptr_index proc~dfs_mark_bool->proc~find_ptr_index

Called by

proc~~dfs_mark_bool~~CalledByGraph proc~dfs_mark_bool dfs_mark_bool proc~dfs_mark_bool->proc~dfs_mark_bool proc~compute_watch_files_from_settings compute_watch_files_from_settings proc~compute_watch_files_from_settings->proc~dfs_mark_bool proc~rebuild_watch_list rebuild_watch_list proc~rebuild_watch_list->proc~compute_watch_files_from_settings proc~handle_manifest_change handle_manifest_change proc~handle_manifest_change->proc~rebuild_watch_list proc~watcher_init watcher_t%watcher_init proc~watcher_init->proc~rebuild_watch_list proc~watcher_run watcher_t%watcher_run proc~watcher_run->proc~rebuild_watch_list proc~watcher_run->proc~handle_manifest_change

Source Code

   recursive subroutine dfs_mark_bool(node, all, visited)
      use fpm_targets, only: build_target_t
      type(build_target_t), pointer, intent(in) :: node
      type(build_target_ptr), intent(in) :: all(:)
      logical, intent(inout) :: visited(:)
      integer :: idx, i

      idx = find_ptr_index(node, all)
      if (idx <= 0) return
      if (visited(idx)) return
      visited(idx) = .true.

      if (allocated(node%dependencies)) then
         do i = 1, size(node%dependencies)
            if (associated(node%dependencies(i)%ptr)) call dfs_mark_bool(node%dependencies(i)%ptr, all, visited)
         end do
      end if
   end subroutine dfs_mark_bool