| Index: ppapi/generators/idl_ast.py | 
| =================================================================== | 
| --- ppapi/generators/idl_ast.py	(revision 97169) | 
| +++ ppapi/generators/idl_ast.py	(working copy) | 
| @@ -78,7 +78,6 @@ | 
| if node.IsA('File'): | 
| node.SetProperty('FILE', node) | 
|  | 
| - | 
| # If this node has a TYPEREF, resolve it to a version list | 
| typeref = node.property_node.GetPropertyLocal('TYPEREF') | 
| if typeref: | 
| @@ -90,7 +89,15 @@ | 
| return filenode | 
|  | 
|  | 
| +class IDLReleaseResolver(IDLVisitor): | 
| +  def VisitFilter(self, node, data): | 
| +    return node.IsA('AST','File', 'Label') | 
|  | 
| +  def Depart(self, node, data, childdata): | 
| +    if node.IsA('Label'): | 
| +      return set([child.name for child in GetListOf('LabelItem')]) | 
| +    return childdata | 
| + | 
| class IDLVersionMapDefault(IDLVersionMap): | 
| def GetRelease(self, version): | 
| return 'M13' | 
| @@ -116,15 +123,6 @@ | 
| builtin = filenode | 
| break | 
|  | 
| -#    if not builtin: | 
| -#      builtin = IDLFile('pp_stdint.idl', []) | 
| -#      extranodes = [builtin] | 
| - | 
| -#    for name in BuiltIn: | 
| -#      nameattr = IDLAttribute('NAME', name) | 
| -#      typenode = IDLNode('Type', 'BuiltIn', 1, 0, [nameattr]) | 
| -#      builtin.AddChild(typenode) | 
| - | 
| IDLNode.__init__(self, 'AST', 'BuiltIn', 1, 0, extranodes + children) | 
| self.SetProperty('LABEL', IDLVersionMapDefault()) | 
| self.Resolve() | 
| @@ -135,6 +133,13 @@ | 
| IDLNamespaceLabelResolver().Visit(self, self.namespace) | 
| IDLFileTypeResolver().Visit(self, None) | 
|  | 
| +    # Build an ordered list of all releases | 
| +    self.releases = set() | 
| +    for filenode in self.GetListOf('File'): | 
| +      vmap = filenode.GetProperty('LABEL') | 
| +      self.releases |= set(vmap.releases) | 
| +    self.releases = sorted(self.releases) | 
| + | 
| def SetTypeInfo(self, name, properties): | 
| node = self.namespace[name] | 
| for prop in properties: | 
|  |