Bug 1298775 - Fix nullptr dereferencing. r?tbsaunde draft
authorWei-Cheng Pan <wpan@mozilla.com>
Wed, 31 Aug 2016 18:35:01 +0800
changeset 409074 7e97398ca148097efae6f38c630a5948e5146bc1
parent 409041 d5f20820c80514476f596090292a5d77c4b41e3b
child 530256 59aa95cd7721af445c424bb7a0389ea6ce1e32d2
push id28375
push userbmo:wpan@mozilla.com
push dateFri, 02 Sep 2016 04:41:28 +0000
reviewerstbsaunde
bugs1298775
milestone51.0a1
Bug 1298775 - Fix nullptr dereferencing. r?tbsaunde This is a follow up to fix nullptr printing. MozReview-Commit-ID: KDjBsHHiDxv
python/gdbpp/gdbpp/smartptr.py
--- a/python/gdbpp/gdbpp/smartptr.py
+++ b/python/gdbpp/gdbpp/smartptr.py
@@ -39,23 +39,25 @@ class smartptr_printer(object):
         else:
             type_name = str(self.value.dereference().dynamic_type.pointer())
 
         return '[(%s) %s]' % (type_name, str(self.value))
 
 @GeckoPrettyPrinter('mozilla::StyleSheetHandle::RefPtr', '^mozilla::HandleRefPtr<mozilla::StyleSheetHandle>$')
 class sheetptr_printer(object):
     def __init__(self, value):
-        self.value = value['mHandle']
-        if self.value and self.value['mPtr'] and self.value['mPtr']['mValue']:
-            self.value = self.value['mPtr']['mValue']
+        self.value = 0
+        if (value['mHandle'] and
+            value['mHandle']['mPtr'] and
+            value['mHandle']['mPtr']['mValue']):
+            self.value = int(value['mHandle']['mPtr']['mValue'])
 
     def to_string(self):
-        if not self.value:
-            type_name = str(self.value.type)
+        if self.value == 0:
+            type_name = 'mozilla::StyleSheet *'
             value = 0
         else:
             value = int(self.value)
             if value & 0x1:
                 value = value & ~0x1
                 type_name = 'mozilla::ServoStyleSheet *'
             else:
                 type_name = 'mozilla::CSSStyleSheet *'