| Index: third_party/mojo/src/mojo/public/python/mojo_bindings/descriptor.py
|
| diff --git a/third_party/mojo/src/mojo/public/python/mojo_bindings/descriptor.py b/third_party/mojo/src/mojo/public/python/mojo_bindings/descriptor.py
|
| index c359e446086b5a75d58f2bbec12df9f15dbcc820..efba73de693ab3ac28ea1aadbb8d64a61b5782e2 100644
|
| --- a/third_party/mojo/src/mojo/public/python/mojo_bindings/descriptor.py
|
| +++ b/third_party/mojo/src/mojo/public/python/mojo_bindings/descriptor.py
|
| @@ -33,13 +33,6 @@
|
| This method must be able to correcly handle value being None.
|
| """
|
| return self.Convert(value)
|
| -
|
| - def IsUnion(self):
|
| - """
|
| - Returns true if the type is a union. This is necessary to be able to
|
| - identify a union when descriptor.py cannot be imported.
|
| - """
|
| - return False
|
|
|
|
|
| class SerializableType(Type):
|
| @@ -158,47 +151,6 @@
|
| if not isinstance(value, (int, long, float)):
|
| raise TypeError('%r is not a numeric type' % value)
|
| return float(value)
|
| -
|
| -
|
| -class UnionType(SerializableType):
|
| - """Base Type object for union."""
|
| -
|
| - def __init__(self, union_type_getter, nullable=False):
|
| - SerializableType.__init__(self, 'IIQ')
|
| - self.nullable = nullable
|
| - self._union_type_getter = union_type_getter
|
| - self._union_type = None
|
| -
|
| - def IsUnion(self):
|
| - return True
|
| -
|
| - @property
|
| - def union_type(self):
|
| - if not self._union_type:
|
| - self._union_type = self._union_type_getter()
|
| - return self._union_type
|
| -
|
| - def Serialize(self, value, data_offset, data, handle_offset):
|
| - if not value:
|
| - if not self.nullable:
|
| - raise serialization.SerializationException(
|
| - 'Trying to serialize null for non nullable type.')
|
| - return ((0, 0, 0), [])
|
| -
|
| - ((size, tag, entry, new_data), new_handles) = (
|
| - value.SerializeInline(handle_offset))
|
| - if len(new_data) > 0:
|
| - data.extend(new_data)
|
| - entry = data_offset - 8
|
| -
|
| - return ((size, tag, entry), new_handles)
|
| -
|
| - def Deserialize(self, value, context):
|
| - result = self.union_type.Deserialize(context)
|
| - if not result and not self.nullable:
|
| - raise serialization.DeserializationException(
|
| - 'Trying to deserialize null for non nullable type.')
|
| - return result
|
|
|
|
|
| class PointerType(SerializableType):
|
| @@ -482,19 +434,16 @@
|
| to_pack.extend(serialization.Flatten(new_data))
|
| returned_handles.extend(new_handles)
|
| position = position + self.sub_type.GetByteSize()
|
| -
|
| serialization.HEADER_STRUCT.pack_into(data, data_end, size, len(value))
|
| - # TODO(azani): Refactor so we don't have to create big formatting strings.
|
| - struct.pack_into(('%s' % self.sub_type.GetTypeCode()) * len(value),
|
| + struct.pack_into('%d%s' % (len(value), self.sub_type.GetTypeCode()),
|
| data,
|
| data_end + serialization.HEADER_STRUCT.size,
|
| *to_pack)
|
| return (data_offset, returned_handles)
|
|
|
| def DeserializeArray(self, size, nb_elements, context):
|
| - # TODO(azani): Refactor so the format string isn't so big.
|
| values = struct.unpack_from(
|
| - nb_elements * self.sub_type.GetTypeCode(),
|
| + '%d%s' % (nb_elements, self.sub_type.GetTypeCode()),
|
| buffer(context.data, serialization.HEADER_STRUCT.size))
|
| values_per_element = len(self.sub_type.GetTypeCode())
|
| assert nb_elements * values_per_element == len(values)
|
|
|