[FFmpeg-devel] [PATCH] avutil/avstring: Inline some tiny functions
Ganesh Ajjanagadde
gajjanag at mit.edu
Sat Sep 26 18:10:40 CEST 2015
On Sat, Sep 26, 2015 at 12:04 PM, Henrik Gramner <henrik at gramner.com> wrote:
> They're short enough that inlining them actually reduces code size due to
> all the overhead associated with making a function call.
> ---
> libavutil/avstring.c | 22 ----------------------
> libavutil/avstring.h | 22 ++++++++++++++++++----
> 2 files changed, 18 insertions(+), 26 deletions(-)
>
> diff --git a/libavutil/avstring.c b/libavutil/avstring.c
> index 24d1bb9..57fe74d 100644
> --- a/libavutil/avstring.c
> +++ b/libavutil/avstring.c
> @@ -317,28 +317,6 @@ int av_escape(char **dst, const char *src, const char *special_chars,
> }
> }
>
> -int av_isdigit(int c)
> -{
> - return c >= '0' && c <= '9';
> -}
> -
> -int av_isgraph(int c)
> -{
> - return c > 32 && c < 127;
> -}
> -
> -int av_isspace(int c)
> -{
> - return c == ' ' || c == '\f' || c == '\n' || c == '\r' || c == '\t' ||
> - c == '\v';
> -}
> -
> -int av_isxdigit(int c)
> -{
> - c = av_tolower(c);
> - return av_isdigit(c) || (c >= 'a' && c <= 'f');
> -}
> -
> int av_match_name(const char *name, const char *names)
> {
> const char *p;
> diff --git a/libavutil/avstring.h b/libavutil/avstring.h
> index 234c030..a306e89 100644
> --- a/libavutil/avstring.h
> +++ b/libavutil/avstring.h
> @@ -203,17 +203,27 @@ char *av_strtok(char *s, const char *delim, char **saveptr);
> /**
> * Locale-independent conversion of ASCII isdigit.
> */
> -av_const int av_isdigit(int c);
> +static inline av_const int av_isdigit(int c)
> +{
> + return c >= '0' && c <= '9';
> +}
>
> /**
> * Locale-independent conversion of ASCII isgraph.
> */
> -av_const int av_isgraph(int c);
> +static inline av_const int av_isgraph(int c)
> +{
> + return c > 32 && c < 127;
> +}
>
> /**
> * Locale-independent conversion of ASCII isspace.
> */
> -av_const int av_isspace(int c);
> +static inline av_const int av_isspace(int c)
> +{
> + return c == ' ' || c == '\f' || c == '\n' || c == '\r' || c == '\t' ||
> + c == '\v';
> +}
>
> /**
> * Locale-independent conversion of ASCII characters to uppercase.
> @@ -238,7 +248,11 @@ static inline av_const int av_tolower(int c)
> /**
> * Locale-independent conversion of ASCII isxdigit.
> */
> -av_const int av_isxdigit(int c);
> +static inline av_const int av_isxdigit(int c)
> +{
> + c = av_tolower(c);
> + return av_isdigit(c) || (c >= 'a' && c <= 'f');
> +}
>
> /**
> * Locale-independent case-insensitive compare.
> --
> 1.8.3.2
Have you compared with av_always_inline?
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
More information about the ffmpeg-devel
mailing list