From 828bf10ab4697c15808ef383e5b74a3efa2242ee Mon Sep 17 00:00:00 2001
From: =?utf8?q?Jos=C3=A9=20Fonseca?= <jose.r.fonseca@gmail.com>
Date: Mon, 16 Apr 2012 20:48:59 +0100
Subject: [PATCH] Fix querying an external derived interface.

---
 wrappers/trace.py | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/wrappers/trace.py b/wrappers/trace.py
index 0064d86..18839bb 100644
--- a/wrappers/trace.py
+++ b/wrappers/trace.py
@@ -626,11 +626,9 @@ class Tracer:
         else_ = ''
         if self.interface is not None:
             functionName = self.interface.name + '::' + functionName
-            print r'        %sif (*%s == m_pInstance) {' % (else_, out.name,)
+            print r'        if (*%s == m_pInstance &&' % (out.name,)
+            print r'            (%s)) {' % ' || '.join('%s == IID_%s' % (riid.name, iface.name) for iface in self.interface.iterBases())
             print r'            *%s = this;' % (out.name,)
-            print r'            if (%s) {' % ' && '.join('%s != IID_%s' % (riid.name, iface.name) for iface in self.interface.iterBases()) 
-            print r'                warnIID("%s", %s, "unexpected");' % (functionName, riid.name)
-            print r'            }'
             print r'        }'
             else_ = 'else '
         print r'        %s{' % else_
-- 
2.45.2