[vlc-devel] [PATCH] core: fix vlc_tick_now on darwin platform

Steve Lhomme robux4 at ycbcr.xyz
Thu Sep 27 10:09:19 CEST 2018


On 27/09/2018 05:42, Zhao Zhili wrote:
> ---
>   src/darwin/thread.c | 10 +++-------
>   1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/src/darwin/thread.c b/src/darwin/thread.c
> index f5eb4f2..0dd1e3c 100644
> --- a/src/darwin/thread.c
> +++ b/src/darwin/thread.c
> @@ -516,14 +516,10 @@ vlc_tick_t vlc_tick_now (void)
>       vlc_clock_setup();
>       uint64_t date = mach_absolute_time();
>   
> -    /* denom is uint32_t, switch to 64 bits to prevent overflow. */
> -    uint64_t denom = vlc_clock_conversion_factor.denom;
> -
> -    /* Switch to microsecs */
> -    denom *= UINT64_C(1000);
> -
>       /* Split the division to prevent overflow */
> -    return vlc_tick_from_frac( date * vlc_clock_conversion_factor.numer, denom );
> +    lldiv_t d = lldiv (vlc_clock_conversion_factor.numer, vlc_clock_conversion_factor.denom);

If we're using this, we might store the lldiv result once and for all in 
vlc_clock_setup_once().

> +    date = (d.quot * date) + ((d.rem * date) / vlc_clock_conversion_factor.denom);
> +    return VLC_TICK_FROM_NS(date);
>   }
>   
>   #undef vlc_tick_wait
> -- 
> 2.9.5
>
>
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel



More information about the vlc-devel mailing list