62 lines
2.1 KiB
Diff
62 lines
2.1 KiB
Diff
|
From 8d3ff6244c7cc5a8399afcf0d1d98d7fd8148452 Mon Sep 17 00:00:00 2001
|
||
|
From: Mathieu Bridon <bochecha@daitauha.fr>
|
||
|
Date: Thu, 9 Aug 2018 10:27:23 +0200
|
||
|
Subject: [PATCH] python: Use key-functions when sorting containers
|
||
|
|
||
|
In Python 2, the traditional way to sort containers was to use a
|
||
|
comparison function (which returned either -1, 0 or 1 when passed two
|
||
|
objects) and pass that as the "cmp" argument to the container's sort()
|
||
|
method.
|
||
|
|
||
|
Python 2.4 introduced key-functions, which instead only operate on a
|
||
|
given item, and return a sorting key for this item.
|
||
|
|
||
|
In general, this runs faster, because the cmp-function has to get run
|
||
|
multiple times for each item of the container.
|
||
|
|
||
|
Python 3 removed the cmp-function, enforcing usage of key-functions
|
||
|
instead.
|
||
|
|
||
|
This change makes the script compatible with Python 2 and Python 3.
|
||
|
|
||
|
Signed-off-by: Mathieu Bridon <bochecha@daitauha.fr>
|
||
|
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
|
||
|
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
|
||
|
---
|
||
|
src/mapi/mapi_abi.py | 5 +++--
|
||
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/src/mapi/mapi_abi.py b/src/mapi/mapi_abi.py
|
||
|
index e4ce2b6caf..d4c48ec430 100644
|
||
|
--- a/src/mapi/mapi_abi.py
|
||
|
+++ b/src/mapi/mapi_abi.py
|
||
|
@@ -32,6 +32,7 @@ import os
|
||
|
GLAPI = os.path.join(".", os.path.dirname(sys.argv[0]), "glapi/gen")
|
||
|
sys.path.append(GLAPI)
|
||
|
|
||
|
+from operator import attrgetter
|
||
|
import re
|
||
|
from optparse import OptionParser
|
||
|
import gl_XML
|
||
|
@@ -291,7 +292,7 @@ class ABIPrinter(object):
|
||
|
|
||
|
# sort entries by their names
|
||
|
self.entries_sorted_by_names = self.entries[:]
|
||
|
- self.entries_sorted_by_names.sort(lambda x, y: cmp(x.name, y.name))
|
||
|
+ self.entries_sorted_by_names.sort(key=attrgetter('name'))
|
||
|
|
||
|
self.indent = ' ' * 3
|
||
|
self.noop_warn = 'noop_warn'
|
||
|
@@ -441,7 +442,7 @@ class ABIPrinter(object):
|
||
|
"""Return the string pool for use by stubs."""
|
||
|
# sort entries by their names
|
||
|
sorted_entries = self.entries[:]
|
||
|
- sorted_entries.sort(lambda x, y: cmp(x.name, y.name))
|
||
|
+ sorted_entries.sort(key=attrgetter('name'))
|
||
|
|
||
|
pool = []
|
||
|
offsets = {}
|
||
|
--
|
||
|
2.16.4
|
||
|
|