From dc279377782e2f5fd8d8781bd0596b5f683ee0e0 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Jos=C3=A9=20Fonseca?= <jose.r.fonseca@gmail.com>
Date: Thu, 5 Apr 2012 19:58:20 +0100
Subject: [PATCH] Warn on null this pointer.

---
 retrace.py | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/retrace.py b/retrace.py
index 96a53b3..b2d8f2f 100644
--- a/retrace.py
+++ b/retrace.py
@@ -286,8 +286,12 @@ class Retracer:
         self.swizzleValues(method)
 
     def deserializeThisPointer(self, interface):
-        print '    %s *_this;' % (interface.name,)
-        print '    _this = static_cast<%s *>(_obj_map[call.arg(0).toUIntPtr()]);' % (interface.name,)
+        print r'    %s *_this;' % (interface.name,)
+        print r'    _this = static_cast<%s *>(_obj_map[call.arg(0).toUIntPtr()]);' % (interface.name,)
+        print r'    if (!_this) {'
+        print r'        retrace::warning(call) << "NULL this pointer\n";'
+        print r'        return;'
+        print r'    }'
 
     def deserializeArgs(self, function):
         print '    retrace::ScopedAllocator _allocator;'
-- 
2.45.2