Commit 50ff74ff authored by Stanislav Kinsbursky's avatar Stanislav Kinsbursky Committed by Pavel Emelyanov

protobuf: show field cleanup

Let's pass field structure to show functions. Hope, it makes the mess less
anoying...
Signed-off-by: 's avatarStanislav Kinsbursky <skinsbursky@openvz.org>
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent ed9cbaf4
...@@ -141,26 +141,26 @@ struct pb_pr_ctrl_s { ...@@ -141,26 +141,26 @@ struct pb_pr_ctrl_s {
}; };
typedef struct pb_pr_ctrl_s pb_pr_ctl_t; typedef struct pb_pr_ctrl_s pb_pr_ctl_t;
typedef void (*pb_pr_show_t)(void *obj, pb_pr_ctl_t *ctl); typedef void (*pb_pr_show_t)(pb_pr_field_t *field);
static void pb_msg_int32x(void *obj, pb_pr_ctl_t *ctl) static void pb_msg_int32x(pb_pr_field_t *field)
{ {
pr_msg("%#x", *(int *)obj); pr_msg("%#x", *(int *)field->data);
} }
static void pb_msg_int64x(void *obj, pb_pr_ctl_t *ctl) static void pb_msg_int64x(pb_pr_field_t *field)
{ {
pr_msg("%#016lx", *(long *)obj); pr_msg("%#016lx", *(long *)field->data);
} }
static void pb_msg_string(void *obj, pb_pr_ctl_t *ctl) static void pb_msg_string(pb_pr_field_t *field)
{ {
pr_msg("\"%s\"", *(char **)obj); pr_msg("\"%s\"", *(char **)field->data);
} }
static void pb_msg_unk(void *obj, pb_pr_ctl_t *ctl) static void pb_msg_unk(pb_pr_field_t *field)
{ {
pr_msg("unknown object %p", obj); pr_msg("unknown object %p", field->data);
} }
static inline void print_tabs(pb_pr_ctl_t *ctl) static inline void print_tabs(pb_pr_ctl_t *ctl)
...@@ -183,22 +183,25 @@ static void print_nested_message_braces(pb_pr_ctl_t *ctl, int right_brace) ...@@ -183,22 +183,25 @@ static void print_nested_message_braces(pb_pr_ctl_t *ctl, int right_brace)
static void pb_show_msg(const void *msg, pb_pr_ctl_t *ctl); static void pb_show_msg(const void *msg, pb_pr_ctl_t *ctl);
static void show_nested_message(void *msg, pb_pr_ctl_t *ctl) static void show_nested_message(pb_pr_field_t *field)
{ {
pb_pr_ctl_t *ctl = container_of(field, pb_pr_ctl_t, cur);
print_nested_message_braces(ctl, 0); print_nested_message_braces(ctl, 0);
ctl->cur.depth++; field->depth++;
pb_show_msg(msg, ctl); pb_show_msg(field->data, ctl);
ctl->cur.depth--; field->depth--;
print_nested_message_braces(ctl, 1); print_nested_message_braces(ctl, 1);
} }
static void show_enum(void *msg, pb_pr_ctl_t *ctl) static void show_enum(pb_pr_field_t *field)
{ {
pb_pr_ctl_t *ctl = container_of(field, pb_pr_ctl_t, cur);
ProtobufCEnumDescriptor *d = ctl->arg; ProtobufCEnumDescriptor *d = ctl->arg;
const char *val_name = NULL; const char *val_name = NULL;
int val, i; int val, i;
val = *(int *)msg; val = *(int *)field->data;
for (i = 0; i < d->n_values; i++) for (i = 0; i < d->n_values; i++)
if (d->values[i].value == val) { if (d->values[i].value == val) {
val_name = d->values[i].name; val_name = d->values[i].name;
...@@ -211,9 +214,9 @@ static void show_enum(void *msg, pb_pr_ctl_t *ctl) ...@@ -211,9 +214,9 @@ static void show_enum(void *msg, pb_pr_ctl_t *ctl)
pr_msg("%d", val); pr_msg("%d", val);
} }
static void show_bool(void *msg, pb_pr_ctl_t *ctl) static void show_bool(pb_pr_field_t *field)
{ {
protobuf_c_boolean val = *(protobuf_c_boolean *)msg; protobuf_c_boolean val = *(protobuf_c_boolean *)field->data;
if (val) if (val)
pr_msg("True"); pr_msg("True");
...@@ -302,12 +305,12 @@ static void pb_show_repeated(pb_pr_ctl_t *ctl, int nr_fields, pb_pr_show_t show, ...@@ -302,12 +305,12 @@ static void pb_show_repeated(pb_pr_ctl_t *ctl, int nr_fields, pb_pr_show_t show,
pb_pr_field_t *field = &ctl->cur; pb_pr_field_t *field = &ctl->cur;
unsigned long counter; unsigned long counter;
show(field->data, ctl); show(field);
field->data += fsize; field->data += fsize;
for (counter = 0; counter < nr_fields - 1; counter++, field->data += fsize) { for (counter = 0; counter < nr_fields - 1; counter++, field->data += fsize) {
pr_msg(":"); pr_msg(":");
show(field->data, ctl); show(field);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment