summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMathieu Bridon <[email protected]>2018-08-09 10:27:23 +0200
committerDylan Baker <[email protected]>2018-08-09 16:49:19 -0700
commit8d3ff6244c7cc5a8399afcf0d1d98d7fd8148452 (patch)
tree5dd34e5fdc175bb70c470c86e430fbe6d3f65329
parent1e668ca111563b122b16be5506638983b31205b5 (diff)
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 <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Dylan Baker <[email protected]>
-rw-r--r--src/mapi/mapi_abi.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mapi/mapi_abi.py b/src/mapi/mapi_abi.py
index e4ce2b6cafd..d4c48ec4300 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 = {}