Change size of the TOML value list
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(toml_node), | intent(inout), | allocatable, target | :: | list(:) |
Array of TOML values to be resized |
|
integer, | intent(in) | :: | n |
New size of the list |
subroutine resize(list, n) !> Array of TOML values to be resized type(toml_node), allocatable, intent(inout), target :: list(:) !> New size of the list integer, intent(in) :: n type(toml_node), allocatable, target :: tmp(:) integer :: i if (allocated(list)) then call move_alloc(list, tmp) allocate(list(n)) do i = 1, min(size(tmp), n) if (allocated(tmp(i)%val)) then call move_alloc(tmp(i)%val, list(i)%val) end if end do do i = n+1, size(tmp) if (allocated(tmp(i)%val)) then call tmp(i)%val%destroy deallocate(tmp(i)%val) end if end do deallocate(tmp) else allocate(list(n)) end if end subroutine resize