mapi_abi: Get rid of unnecessary copy.
authorPaul Berry <stereotype441@gmail.com>
Wed, 10 Oct 2012 22:10:00 +0000 (15:10 -0700)
committerPaul Berry <stereotype441@gmail.com>
Tue, 16 Oct 2012 19:03:56 +0000 (12:03 -0700)
Previously, _get_api_entries() would make a deep copy of each element
in the entries table before modifying the 'hidden' and 'handcode'
attributes.  This was unnecessary, since the entries aren't used again
after this function.  Removing the copy simplifies the code, because
it is no longer necessary to adjust the alias pointers to point to the
copied entries.

Tested-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/mapi/mapi/mapi_abi.py

index ce4e0473ea12e12260d26e86321318c40b0346e4..c2d9085ca82ea30e1280e343f554275a39a70ba0 100644 (file)
@@ -36,7 +36,6 @@ import re
 from optparse import OptionParser
 import gl_XML
 import glX_XML
-import copy
 from gles_api import es1_api, es2_api
 
 
@@ -690,8 +689,8 @@ class GLAPIPrinter(ABIPrinter):
     """OpenGL API Printer"""
 
     def __init__(self, entries, api=None):
-        api_entries = self._get_api_entries(entries, api)
-        super(GLAPIPrinter, self).__init__(api_entries)
+        self._override_for_api(entries, api)
+        super(GLAPIPrinter, self).__init__(entries)
 
         self.api_defines = ['GL_GLEXT_PROTOTYPES']
         self.api_headers = ['"GL/gl.h"', '"GL/glext.h"']
@@ -712,28 +711,16 @@ class GLAPIPrinter(ABIPrinter):
 
         self.c_header = self._get_c_header()
 
-    def _get_api_entries(self, entries, api):
+    def _override_for_api(self, entries, api):
         """Override the entry attributes according to API."""
         # no override
         if api is None:
             return entries
 
-        api_entries = {}
         for ent in entries:
-            ent = copy.copy(ent)
-
             # override 'hidden' and 'handcode'
             ent.hidden = ent.name not in api
             ent.handcode = False
-            if ent.alias:
-                ent.alias = api_entries[ent.alias.name]
-
-            api_entries[ent.name] = ent
-
-        entries = api_entries.values()
-        entries.sort()
-
-        return entries
 
     def _get_c_header(self):
         header = """#ifndef _GLAPI_TMP_H_