blackbox: do not assume self._bb{vfs,repo,fp} are set in blackboxui.__init__
authorJun Wu <quark@fb.com>
Tue, 15 Mar 2016 10:36:02 +0000
changeset 28552 999e1acc61aa
parent 28551 8e5312f8df30
child 28553 5346e9b910fc
blackbox: do not assume self._bb{vfs,repo,fp} are set in blackboxui.__init__ It's possible for the blackboxui code to do a "del self._bbvfs", then ui.copy() or similar attempt will fail. It will also fail when constructing a blackboxui from a non-blackbox ui. This patch fixes the issue by not assuming any _bb* attr is set.
hgext/blackbox.py
--- a/hgext/blackbox.py	Mon Mar 14 23:28:14 2016 +0000
+++ b/hgext/blackbox.py	Tue Mar 15 10:36:02 2016 +0000
@@ -80,10 +80,10 @@
             if src is None:
                 self._partialinit()
             else:
-                self._bbfp = src._bbfp
+                self._bbfp = getattr(src, '_bbfp', None)
                 self._bbinlog = False
-                self._bbrepo = src._bbrepo
-                self._bbvfs = src._bbvfs
+                self._bbrepo = getattr(src, '_bbrepo', None)
+                self._bbvfs = getattr(src, '_bbvfs', None)
 
         def _partialinit(self):
             if util.safehasattr(self, '_bbvfs'):