]> git.notmuchmail.org Git - apitrace/blobdiff - base.py
Handle glXGetProcAddressARB
[apitrace] / base.py
diff --git a/base.py b/base.py
index 77409bb4ce3214838afecc61ac1cefc8f52d1c7b..6b49009c4b505f4bc70ec389828fd3c3f70b4764 100644 (file)
--- a/base.py
+++ b/base.py
@@ -67,6 +67,9 @@ class Visitor:
     def visit_pointer(self, pointer, *args, **kwargs):
         raise NotImplementedError
 
+    def visit_handle(self, handle, *args, **kwargs):
+        raise NotImplementedError
+
     def visit_alias(self, alias, *args, **kwargs):
         raise NotImplementedError
 
@@ -126,6 +129,10 @@ class Rebuilder(Visitor):
         type = self.visit(pointer.type)
         return Pointer(type)
 
+    def visit_handle(self, handle):
+        type = self.visit(handle.type)
+        return Handle(handle.name, type)
+
     def visit_alias(self, alias):
         type = self.visit(alias.type)
         return Alias(alias.expr, type)
@@ -229,6 +236,17 @@ class Pointer(Type):
         return visitor.visit_pointer(self, *args, **kwargs)
 
 
+class Handle(Type):
+
+    def __init__(self, name, type):
+        Type.__init__(self, type.expr, 'P' + type.id)
+        self.name = name
+        self.type = type
+
+    def visit(self, visitor, *args, **kwargs):
+        return visitor.visit_handle(self, *args, **kwargs)
+
+
 def ConstPointer(type):
     return Pointer(Const(type))