[systemd-devel] [PATCH] libsystemd-bus: Clean up code

Thomas H.P. Andersen phomes at gmail.com
Mon Dec 9 12:22:43 PST 2013


If I understood correctly then the assert_return was meant to be used
only on the public library functions. I can't seem to find the
reference to it so maybe I am wrong though.

On Mon, Dec 9, 2013 at 2:09 PM, Lukasz Skalski
<l.skalski at partner.samsung.com> wrote:
> ---
>  src/libsystemd-bus/bus-dump.c      |  2 +-
>  src/libsystemd-bus/bus-error.c     |  3 +--
>  src/libsystemd-bus/bus-kernel.c    | 12 +++---------
>  src/libsystemd-bus/bus-message.c   | 12 +++---------
>  src/libsystemd-bus/bus-signature.c | 13 ++++---------
>  5 files changed, 12 insertions(+), 30 deletions(-)
>
> diff --git a/src/libsystemd-bus/bus-dump.c b/src/libsystemd-bus/bus-dump.c
> index ddad418..a999683 100644
> --- a/src/libsystemd-bus/bus-dump.c
> +++ b/src/libsystemd-bus/bus-dump.c
> @@ -56,7 +56,7 @@ int bus_message_dump(sd_bus_message *m, FILE *f, bool with_header) {
>
>          if (with_header) {
>                  fprintf(f,
> -                        "%s%s%sType=%s%s%s  Endian=%c  Flags=%u  Version=%u",
> +                        "%s%s%sType=%s%s%s  Endian=%c  Flags=%u  Version=%u ",
>                          m->header->type == SD_BUS_MESSAGE_METHOD_ERROR ? ansi_highlight_red() :
>                          m->header->type == SD_BUS_MESSAGE_METHOD_RETURN ? ansi_highlight_green() :
>                          m->header->type != SD_BUS_MESSAGE_SIGNAL ? ansi_highlight() : "", draw_special_char(DRAW_TRIANGULAR_BULLET), ansi_highlight_off(),
> diff --git a/src/libsystemd-bus/bus-error.c b/src/libsystemd-bus/bus-error.c
> index 25eaf0e..4f18629 100644
> --- a/src/libsystemd-bus/bus-error.c
> +++ b/src/libsystemd-bus/bus-error.c
> @@ -39,8 +39,7 @@ static int bus_error_name_to_errno(const char *name) {
>          const char *p;
>          int r;
>
> -        if (!name)
> -                return EINVAL;
> +        assert_return(name, EINVAL);
>
>          p = startswith(name, "System.Error.");
>          if (p) {
> diff --git a/src/libsystemd-bus/bus-kernel.c b/src/libsystemd-bus/bus-kernel.c
> index 495d7e5..d5574ce 100644
> --- a/src/libsystemd-bus/bus-kernel.c
> +++ b/src/libsystemd-bus/bus-kernel.c
> @@ -321,9 +321,7 @@ int bus_kernel_take_fd(sd_bus *b) {
>          int r;
>
>          assert(b);
> -
> -        if (b->is_server)
> -                return -EINVAL;
> +        assert_return(!b->is_server, -EINVAL);
>
>          b->use_memfd = 1;
>
> @@ -374,9 +372,7 @@ int bus_kernel_connect(sd_bus *b) {
>          assert(b->input_fd < 0);
>          assert(b->output_fd < 0);
>          assert(b->kernel);
> -
> -        if (b->is_server)
> -                return -EINVAL;
> +        assert_return(!b->is_server, -EINVAL);
>
>          b->input_fd = open(b->kernel, O_RDWR|O_NOCTTY|O_CLOEXEC);
>          if (b->input_fd < 0)
> @@ -904,9 +900,7 @@ int bus_kernel_pop_memfd(sd_bus *bus, void **address, size_t *size) {
>
>          assert(address);
>          assert(size);
> -
> -        if (!bus || !bus->is_kernel)
> -                return -ENOTSUP;
> +        assert_return(bus || bus->is_kernel, -ENOTSUP);
You should && them here.

>          assert_se(pthread_mutex_lock(&bus->memfd_cache_mutex) >= 0);
>
> diff --git a/src/libsystemd-bus/bus-message.c b/src/libsystemd-bus/bus-message.c
> index 4c0e27f..041dfba 100644
> --- a/src/libsystemd-bus/bus-message.c
> +++ b/src/libsystemd-bus/bus-message.c
> @@ -158,9 +158,7 @@ static void *message_extend_fields(sd_bus_message *m, size_t align, size_t sz, b
>          size_t old_size, new_size, start;
>
>          assert(m);
> -
> -        if (m->poisoned)
> -                return NULL;
> +        assert_return(!m->poisoned, NULL);
>
>          old_size = sizeof(struct bus_header) + m->header->fields_size;
>          start = ALIGN_TO(old_size, align);
> @@ -985,9 +983,7 @@ struct bus_body_part *message_append_part(sd_bus_message *m) {
>          struct bus_body_part *part;
>
>          assert(m);
> -
> -        if (m->poisoned)
> -                return NULL;
> +        assert_return(!m->poisoned, NULL);
>
>          if (m->n_body_parts <= 0) {
>                  part = &m->body;
> @@ -1136,9 +1132,7 @@ static void *message_extend_body(sd_bus_message *m, size_t align, size_t sz, boo
>          assert(m);
>          assert(align > 0);
>          assert(!m->sealed);
> -
> -        if (m->poisoned)
> -                return NULL;
> +        assert_return(!m->poisoned, NULL);
>
>          start_body = ALIGN_TO((size_t) m->header->body_size, align);
>          end_body = start_body + sz;
> diff --git a/src/libsystemd-bus/bus-signature.c b/src/libsystemd-bus/bus-signature.c
> index 1e5bf48..3fb0794 100644
> --- a/src/libsystemd-bus/bus-signature.c
> +++ b/src/libsystemd-bus/bus-signature.c
> @@ -33,9 +33,7 @@ static int signature_element_length_internal(
>
>          int r;
>
> -        if (!s)
> -                return -EINVAL;
> -
> +        assert_return(s, -EINVAL);
>          assert(l);
>
>          if (bus_type_is_basic(*s) || *s == SD_BUS_TYPE_VARIANT) {
> @@ -117,8 +115,7 @@ bool signature_is_single(const char *s, bool allow_dict_entry) {
>          int r;
>          size_t t;
>
> -        if (!s)
> -                return false;
> +        assert_return(s, false);
>
>          r = signature_element_length_internal(s, allow_dict_entry, 0, 0, &t);
>          if (r < 0)
> @@ -129,8 +126,7 @@ bool signature_is_single(const char *s, bool allow_dict_entry) {
>
>  bool signature_is_pair(const char *s) {
>
> -        if (!s)
> -                return false;
> +        assert_return(s, false);
>
>          if (!bus_type_is_basic(*s))
>                  return false;
> @@ -142,8 +138,7 @@ bool signature_is_valid(const char *s, bool allow_dict_entry) {
>          const char *p;
>          int r;
>
> -        if (!s)
> -                return false;
> +        assert_return(s, false);
>
>          p = s;
>          while (*p) {
> --
> 1.8.3.2
>
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel


More information about the systemd-devel mailing list