Minor refactoring and code tweaking.  The only notable chage is that
FilterGLAPISpecBase::xref is replaced by
FilterGLAPISpecBase::functions_by_name.  The notable difference between the
two is that ::functions_by_name includes all functions, whether they have an
assigned offset or not.  This feature will be useful (necessary) when more
server-side code is generated.
diff --git a/src/mesa/glapi/glX_XML.py b/src/mesa/glapi/glX_XML.py
index 3f6f841..98be996 100644
--- a/src/mesa/glapi/glX_XML.py
+++ b/src/mesa/glapi/glX_XML.py
@@ -416,10 +416,9 @@
 
 
 	def variable_length_parameter(self):
-		for param in self.fn_parameters:
-			if param.is_variable_length_array():
-				return param
-			
+		if len(self.variable_length_parameters):
+			return self.variable_length_parameters[0]
+
 		return None
 
 
diff --git a/src/mesa/glapi/gl_XML.py b/src/mesa/glapi/gl_XML.py
index 3f87a57..1c4e734 100644
--- a/src/mesa/glapi/gl_XML.py
+++ b/src/mesa/glapi/gl_XML.py
@@ -529,22 +529,18 @@
 class FilterGLAPISpecBase(saxutils.XMLFilterBase):
 	name = "a"
 	license = "The license for this file is unspecified."
-	functions = {}
 	next_alias = -2
-	types = {}
-	xref = {}
 	current_object = None
-	factory = None
-	current_category = ""
 
 	def __init__(self):
 		saxutils.XMLFilterBase.__init__(self)
 		self.functions = {}
 		self.types = {}
-		self.xref = {}
+		self.functions_by_name = {}
 		self.factory = glItemFactory()
 		self.header_tag = None
 		self.undef_list = []
+		self.current_category = ""
 
 
 	def find_type(self,type_name):
@@ -556,8 +552,7 @@
 
 
 	def find_function(self,function_name):
-		index = self.xref[function_name]
-		return self.functions[index]
+		return self.functions_by_name[function_name]
 
 
 	def functionIterator(self):
@@ -626,7 +621,9 @@
 					self.next_alias -= 1
 
 				self.functions[index] = obj
-				self.xref[obj.name] = index
+
+			self.functions_by_name[obj.name] = obj
+
 		elif object_type == "type":
 			self.types[obj.name] = obj