svn commit: r360983 - head/include

Conrad Meyer cem at freebsd.org
Tue May 12 18:39:31 UTC 2020


Why not just use _Bool and leave the compatibility definition only for
C++ (#define _Bool bool)?

On Tue, May 12, 2020 at 11:12 AM Konstantin Belousov <kib at freebsd.org> wrote:
>
> Author: kib
> Date: Tue May 12 18:12:20 2020
> New Revision: 360983
> URL: https://svnweb.freebsd.org/changeset/base/360983
>
> Log:
>   Clear namespace pollution in include/malloc_np.h
>
>   Do not include stdbool.h, it makes the header incompatible with some
>   third-party code that typedefs bool manually.
>   Remove inclusion of strings.h, which typically conflicts with the use
>   of symbol 'index'.
>   Separate inclusion of sys/cdefs.h is not needed because sys/types.h
>   already handles that.
>
>   Exp-run by:   antoine (PR 245366)
>   Sponsored by: The FreeBSD Foundation
>   MFC after:    1 week
>   Differential revision:        https://reviews.freebsd.org/D24297
>
> Modified:
>   head/include/malloc_np.h
>
> Modified: head/include/malloc_np.h
> ==============================================================================
> --- head/include/malloc_np.h    Tue May 12 17:18:44 2020        (r360982)
> +++ head/include/malloc_np.h    Tue May 12 18:12:20 2020        (r360983)
> @@ -33,29 +33,33 @@
>
>  #ifndef _MALLOC_NP_H_
>  #define        _MALLOC_NP_H_
> -#include <sys/cdefs.h>
> +
>  #include <sys/types.h>
> -#include <stdbool.h>
> -#include <strings.h>
>
> +#ifdef __cplusplus
> +#define        __MyBool        bool
> +#else
> +#define        __MyBool        _Bool
> +#endif
> +
>  __BEGIN_DECLS
>  typedef struct extent_hooks_s extent_hooks_t;
> -typedef void *(extent_alloc_t)(extent_hooks_t *, void *, size_t, size_t, bool *,
> -    bool *, unsigned);
> -typedef bool (extent_dalloc_t)(extent_hooks_t *, void *, size_t, bool,
> +typedef void *(extent_alloc_t)(extent_hooks_t *, void *, size_t, size_t,
> +    __MyBool *, __MyBool *, unsigned);
> +typedef __MyBool (extent_dalloc_t)(extent_hooks_t *, void *, size_t, __MyBool,
>      unsigned);
> -typedef void (extent_destroy_t)(extent_hooks_t *, void *, size_t, bool,
> +typedef void (extent_destroy_t)(extent_hooks_t *, void *, size_t, __MyBool,
>      unsigned);
> -typedef bool (extent_commit_t)(extent_hooks_t *, void *, size_t, size_t, size_t,
> -    unsigned);
> -typedef bool (extent_decommit_t)(extent_hooks_t *, void *, size_t, size_t,
> +typedef __MyBool (extent_commit_t)(extent_hooks_t *, void *, size_t, size_t,
>      size_t, unsigned);
> -typedef bool (extent_purge_t)(extent_hooks_t *, void *, size_t, size_t, size_t,
> +typedef __MyBool (extent_decommit_t)(extent_hooks_t *, void *, size_t, size_t,
> +    size_t, unsigned);
> +typedef __MyBool (extent_purge_t)(extent_hooks_t *, void *, size_t, size_t, size_t,
>      unsigned);
> -typedef bool (extent_split_t)(extent_hooks_t *, void *, size_t, size_t, size_t,
> -    bool, unsigned);
> -typedef bool (extent_merge_t)(extent_hooks_t *, void *, size_t, void *, size_t,
> -    bool, unsigned);
> +typedef __MyBool (extent_split_t)(extent_hooks_t *, void *, size_t, size_t, size_t,
> +    __MyBool, unsigned);
> +typedef __MyBool (extent_merge_t)(extent_hooks_t *, void *, size_t, void *, size_t,
> +    __MyBool, unsigned);
>  struct extent_hooks_s {
>         extent_alloc_t          *alloc;
>         extent_dalloc_t         *dalloc;
> @@ -119,5 +123,7 @@ void        __dallocx(void *ptr, int flags);
>  void   __sdallocx(void *ptr, size_t size, int flags);
>  size_t __nallocx(size_t size, int flags);
>  __END_DECLS
> +
> +#undef __MyBool
>
>  #endif /* _MALLOC_NP_H_ */


More information about the svn-src-head mailing list