Message ID | 1435782155-31412-47-git-send-email-armbru@redhat.com |
---|---|
State | New |
Headers | show |
On 07/01/2015 02:22 PM, Markus Armbruster wrote: > How many bits we use internally is an implementation detail. It could > be pressed into external interface service as a very approximate range > information, but that's probably a bad idea. If we need range > information, we better do it properly. > > Reduces output of query-schema by a negligible 0.5 out of 80KiB. But also makes us more conservative - it's easier to add things later than to be forced to support forever; and mapping everything to 'int' in introspection lets us change from 'int8' to 'uint8' internally without affecting introspection-visible API. I'm in favor of this for more than just the string size savings. > > Signed-off-by: Markus Armbruster <armbru@redhat.com> > --- > scripts/qapi-introspect.py | 7 +++++++ > 1 file changed, 7 insertions(+) Reviewed-by: Eric Blake <eblake@redhat.com> > > diff --git a/scripts/qapi-introspect.py b/scripts/qapi-introspect.py > index e7efc4a..961fe88 100644 > --- a/scripts/qapi-introspect.py > +++ b/scripts/qapi-introspect.py > @@ -46,6 +46,13 @@ char %(c_name)s[] = "[" > self.used_types = None > > def _use_type(self, typ): > + # Map the various integer types to plain int > + if typ.json_type() == 'int': > + typ = self.schema.lookup_type('int') > + elif isinstance(typ, QAPISchemaArrayType) \ > + and typ.element_type.json_type() == 'int': > + typ = self.schema.lookup_type('intList') > + # Add type to work queue if new > if typ not in self.used_types: > self.used_types.append(typ) > return typ.name >
diff --git a/scripts/qapi-introspect.py b/scripts/qapi-introspect.py index e7efc4a..961fe88 100644 --- a/scripts/qapi-introspect.py +++ b/scripts/qapi-introspect.py @@ -46,6 +46,13 @@ char %(c_name)s[] = "[" self.used_types = None def _use_type(self, typ): + # Map the various integer types to plain int + if typ.json_type() == 'int': + typ = self.schema.lookup_type('int') + elif isinstance(typ, QAPISchemaArrayType) \ + and typ.element_type.json_type() == 'int': + typ = self.schema.lookup_type('intList') + # Add type to work queue if new if typ not in self.used_types: self.used_types.append(typ) return typ.name
How many bits we use internally is an implementation detail. It could be pressed into external interface service as a very approximate range information, but that's probably a bad idea. If we need range information, we better do it properly. Reduces output of query-schema by a negligible 0.5 out of 80KiB. Signed-off-by: Markus Armbruster <armbru@redhat.com> --- scripts/qapi-introspect.py | 7 +++++++ 1 file changed, 7 insertions(+)