diff mbox series

[U-Boot,08/24] dtoc: Convert the Fdt.Node class to Python 3

Message ID 20190518040054.230179-9-sjg@chromium.org
State Accepted
Commit 635180538ecb7c0b109089830ff734d3d002376a
Delegated to: Simon Glass
Headers show
Series binman: dtoc: Convert to Python 3 | expand

Commit Message

Simon Glass May 18, 2019, 4 a.m. UTC
Update this class to work correctly on Python 3 and to pass its unit
tests. The only required change is to deal with a difference in the
behaviour of sorting with a None value.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 tools/dtoc/fdt.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/tools/dtoc/fdt.py b/tools/dtoc/fdt.py
index f051ce67632..26e683c2a4f 100644
--- a/tools/dtoc/fdt.py
+++ b/tools/dtoc/fdt.py
@@ -465,8 +465,11 @@  class Node:
 
         # Sync properties now, whose offsets should not have been disturbed.
         # We do this after subnodes, since this disturbs the offsets of these
-        # properties.
-        prop_list = sorted(self.props.values(), key=lambda prop: prop._offset,
+        # properties. Note that new properties will have an offset of None here,
+        # which Python 3 cannot sort against int. So use a large value instead
+        # to ensure that the new properties are added first.
+        prop_list = sorted(self.props.values(),
+                           key=lambda prop: prop._offset or 1 << 31,
                            reverse=True)
         for prop in prop_list:
             prop.Sync(auto_resize)