Commit decf4f52 authored by Pavel Emelyanov's avatar Pavel Emelyanov

crit: Fix casts for fixed and sfixed types

The native pb engine doesn't accept types other than int or long:

...
  File "/root/src/criu/pycriu/images/pb2dict.py", line 264, in dict2pb
    pb_val.append(_dict2pb_cast(field, v))
  File "/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.py", line 111, in append
    self._type_checker.CheckValue(value)
  File "/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.py", line 104, in CheckValue
    raise TypeError(message)
TypeError: 1.1258999068426252e+16 has type <type 'float'>, but expected one of: (<type 'int'>, <type 'long'>)

In particular, this is seen when encoding back so_filter field from
inetsk image.
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
Acked-by: 's avatarRuslan Kuprieiev <kupruser@gmail.com>
parent d1e9b11d
......@@ -24,12 +24,10 @@ import os
_basic_cast = {
FD.TYPE_DOUBLE : float,
FD.TYPE_FLOAT : float,
FD.TYPE_FIXED64 : float,
FD.TYPE_FIXED32 : float,
FD.TYPE_SFIXED64 : float,
FD.TYPE_SFIXED32 : float,
FD.TYPE_FIXED64 : long,
FD.TYPE_FIXED32 : int,
FD.TYPE_SFIXED64 : long,
FD.TYPE_SFIXED32 : int,
FD.TYPE_INT64 : long,
FD.TYPE_UINT64 : long,
......
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