]> git.proxmox.com Git - mirror_qemu.git/blobdiff - scripts/qapi/schema.py
qapi/schema: Change _make_features() to a take feature list
[mirror_qemu.git] / scripts / qapi / schema.py
index 958756ecd68a67100d0585c3b775ae88f3801f12..4d8ad67303c795a5784ea5fa5a7c9ee6af74ce76 100644 (file)
@@ -904,8 +904,9 @@ class QAPISchema:
         self._def_entity(QAPISchemaEnumType('QType', None, None, None, None,
                                             qtype_values, 'QTYPE'))
 
-    def _make_features(self, expr, info):
-        features = expr.get('features', [])
+    def _make_features(self, features, info):
+        if features is None:
+            return []
         return [QAPISchemaFeature(f['name'], info, f.get('if'))
                 for f in features]
 
@@ -955,7 +956,7 @@ class QAPISchema:
         data = expr['data']
         prefix = expr.get('prefix')
         ifcond = expr.get('if')
-        features = self._make_features(expr, info)
+        features = self._make_features(expr.get('features'), info)
         self._def_entity(QAPISchemaEnumType(
             name, info, doc, ifcond, features,
             self._make_enum_members(data, info), prefix))
@@ -979,7 +980,7 @@ class QAPISchema:
         base = expr.get('base')
         data = expr['data']
         ifcond = expr.get('if')
-        features = self._make_features(expr, info)
+        features = self._make_features(expr.get('features'), info)
         self._def_entity(QAPISchemaObjectType(
             name, info, doc, ifcond, features, base,
             self._make_members(data, info),
@@ -1002,7 +1003,7 @@ class QAPISchema:
         data = expr['data']
         base = expr.get('base')
         ifcond = expr.get('if')
-        features = self._make_features(expr, info)
+        features = self._make_features(expr.get('features'), info)
         tag_name = expr.get('discriminator')
         tag_member = None
         if isinstance(base, dict):
@@ -1032,7 +1033,7 @@ class QAPISchema:
         name = expr['alternate']
         data = expr['data']
         ifcond = expr.get('if')
-        features = self._make_features(expr, info)
+        features = self._make_features(expr.get('features'), info)
         variants = [self._make_variant(key, value['type'], value.get('if'),
                                        info)
                     for (key, value) in data.items()]
@@ -1052,7 +1053,7 @@ class QAPISchema:
         allow_oob = expr.get('allow-oob', False)
         allow_preconfig = expr.get('allow-preconfig', False)
         ifcond = expr.get('if')
-        features = self._make_features(expr, info)
+        features = self._make_features(expr.get('features'), info)
         if isinstance(data, OrderedDict):
             data = self._make_implicit_object_type(
                 name, info, ifcond,
@@ -1070,7 +1071,7 @@ class QAPISchema:
         data = expr.get('data')
         boxed = expr.get('boxed', False)
         ifcond = expr.get('if')
-        features = self._make_features(expr, info)
+        features = self._make_features(expr.get('features'), info)
         if isinstance(data, OrderedDict):
             data = self._make_implicit_object_type(
                 name, info, ifcond,