Skip to content

Commit 13db2fe

Browse files
committed
Improve safety
1 parent 38ab28c commit 13db2fe

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

src/fpm/dependency.f90

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,6 @@ subroutine resolve_dependency(self, dependency, root, error)
451451
character(len=:), allocatable :: manifest, proj_dir, revision
452452
type(fpm_global_settings) :: global_settings
453453
logical :: fetch
454-
type(downloader_t) :: downloader
455454

456455
if (dependency%done) return
457456

@@ -469,7 +468,7 @@ subroutine resolve_dependency(self, dependency, root, error)
469468
else
470469
call get_global_settings(global_settings, error)
471470
if (allocated(error)) return
472-
call dependency%get_from_registry(proj_dir, global_settings, error, downloader)
471+
call dependency%get_from_registry(proj_dir, global_settings, error)
473472
if (allocated(error)) return
474473
end if
475474

@@ -499,7 +498,7 @@ end subroutine resolve_dependency
499498
!> Get a dependency from the registry. Whether the dependency is fetched
500499
!> from a local, a custom remote or the official registry is determined
501500
!> by the global configuration settings.
502-
subroutine get_from_registry(self, target_dir, global_settings, error, downloader)
501+
subroutine get_from_registry(self, target_dir, global_settings, error, downloader_)
503502

504503
!> Instance of the dependency configuration.
505504
class(dependency_node_t), intent(in) :: self
@@ -514,12 +513,19 @@ subroutine get_from_registry(self, target_dir, global_settings, error, downloade
514513
type(error_t), allocatable, intent(out) :: error
515514

516515
!> Downloader instance.
517-
class(downloader_t), optional, intent(in) :: downloader
516+
class(downloader_t), optional, intent(in) :: downloader_
518517

519518
character(:), allocatable :: cache_path, target_url, tmp_file, tmp_path
520519
type(version_t) :: version
521520
integer :: stat, unit
522521
type(json_object) :: json
522+
class(downloader_t), allocatable :: downloader
523+
524+
if (present(downloader_)) then
525+
downloader = downloader_
526+
else
527+
allocate(downloader)
528+
end if
523529

524530
! Use local registry if it was specified in the global config file.
525531
if (allocated(global_settings%registry_settings%path)) then

0 commit comments

Comments
 (0)