]> git.cworth.org Git - apitrace/commitdiff
Fix *CreateFactory's tracing.
authorJosé Fonseca <jose.r.fonseca@gmail.com>
Tue, 31 Jan 2012 19:35:01 +0000 (19:35 +0000)
committerJosé Fonseca <jose.r.fonseca@gmail.com>
Tue, 31 Jan 2012 19:35:01 +0000 (19:35 +0000)
d2d1trace.py
dwritetrace.py

index a99abdaf8e2dc49f51ed16cbc435e41c33d860c1..ad451ac7a42a1ea6e0b1b21b71e42dca3dae954a 100644 (file)
@@ -38,8 +38,8 @@ class D2D1Tracer(DllTracer):
                 print '            *%s = (LPVOID) new Wrap%s((%s *)*%s);' % (arg.name, iface.name, iface.name, arg.name)
                 print '        }'
             print '    }'
-
-        DllTracer.wrapArg(self, function, arg)
+        else:
+            DllTracer.wrapArg(self, function, arg)
 
 
 if __name__ == '__main__':
index 4fc380d4b5d57c1dd8e21cc4ab8202b2f8c2e161..eca9fb5576c4e05413fbc72ceb342f3424407691 100644 (file)
@@ -29,18 +29,18 @@ from specs.dwrite import dwrite
 from specs.d2d1 import d2d1 # cyclic dependency
 
 
-class D2D1Tracer(DllTracer):
+class DWriteTracer(DllTracer):
 
     def wrapArg(self, function, arg):
-        if function.name == 'D2D1CreateFactory' and arg.output:
+        if function.name == 'DWriteCreateFactory' and arg.output:
             print '    if (*%s) {' % arg.name
-            for iface in d2d1.interfaces:
-                print '        if (riid == IID_%s) {' % iface.name
-                print '            *%s = (%s) new Wrap%s((%s *)*%s);' % (arg.name, arg.type, iface.name, iface.name, arg.name)
+            for iface in dwrite.interfaces:
+                print '        if (iid == IID_%s) {' % iface.name
+                print '            *%s = new Wrap%s(static_cast<%s *>(*%s));' % (arg.name, iface.name, iface.name, arg.name)
                 print '        }'
             print '    }'
-
-        DllTracer.wrapArg(self, function, arg)
+        else:
+            DllTracer.wrapArg(self, function, arg)
 
 
 if __name__ == '__main__':
@@ -61,5 +61,5 @@ if __name__ == '__main__':
     print 'DEFINE_GUID(IID_IDWriteFactory,0xb859ee5a,0xd838,0x4b5b,0xa2,0xe8,0x1a,0xdc,0x7d,0x93,0xdb,0x48);'
     print
 
-    tracer = D2D1Tracer('dwrite.dll')
+    tracer = DWriteTracer('dwrite.dll')
     tracer.trace_api(dwrite)