summaryrefslogtreecommitdiffstats
path: root/src/vpp-api/vapi/vapi_json_parser.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/vpp-api/vapi/vapi_json_parser.py')
-rw-r--r--src/vpp-api/vapi/vapi_json_parser.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/vpp-api/vapi/vapi_json_parser.py b/src/vpp-api/vapi/vapi_json_parser.py
index fda3f75d9c1..fbeb1887ac2 100644
--- a/src/vpp-api/vapi/vapi_json_parser.py
+++ b/src/vpp-api/vapi/vapi_json_parser.py
@@ -167,13 +167,16 @@ class Message(object):
else:
field_type = json_parser.lookup_type_like_id(field[0])
logger.debug("Parsing message field `%s'" % field)
- if len(field) == 2:
+ l = len(field)
+ if any(type(n) is dict for n in field):
+ l -= 1
+ if l == 2:
if self.header is not None and\
self.header.has_field(field[1]):
continue
p = field_class(field_name=field[1],
field_type=field_type)
- elif len(field) == 3:
+ elif l == 3:
if field[2] == 0:
raise ParseError(
"While parsing message `%s': variable length "
@@ -184,7 +187,7 @@ class Message(object):
field_name=field[1],
field_type=field_type,
array_len=field[2])
- elif len(field) == 4:
+ elif l == 4:
nelem_field = None
for f in fields:
if f.name == field[3]: