Module: Mesa Branch: master Commit: 8d3ff6244c7cc5a8399afcf0d1d98d7fd8148452 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8d3ff6244c7cc5a8399afcf0d1d98d7fd8148452
Author: Mathieu Bridon <boche...@daitauha.fr> Date: Thu Aug 9 10:27:23 2018 +0200 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 <boche...@daitauha.fr> Reviewed-by: Eric Engestrom <eric.engest...@intel.com> Reviewed-by: Dylan Baker <dy...@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 = {} _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit