mirror of
https://github.com/facebook/sapling.git
synced 2024-10-08 07:49:11 +03:00
hgweb: break templater -> templater circular reference
The problem were some functions passed in the "defaults" argument during the templater creation which use "self.t" directly. This creates the cycle: hgweb object -> templater object -> defaults dict -> footer function -> hgweb object Instead of completely avoding the cycle, we break it after using the templater.
This commit is contained in:
parent
a6c18d39af
commit
8bb9d231ee
@ -806,19 +806,22 @@ class hgweb(object):
|
||||
"sessionvars": sessionvars
|
||||
})
|
||||
|
||||
if not req.form.has_key('cmd'):
|
||||
req.form['cmd'] = [self.t.cache['default']]
|
||||
try:
|
||||
if not req.form.has_key('cmd'):
|
||||
req.form['cmd'] = [self.t.cache['default']]
|
||||
|
||||
cmd = req.form['cmd'][0]
|
||||
cmd = req.form['cmd'][0]
|
||||
|
||||
method = getattr(self, 'do_' + cmd, None)
|
||||
if method:
|
||||
try:
|
||||
method(req)
|
||||
except (hg.RepoError, revlog.RevlogError), inst:
|
||||
req.write(self.t("error", error=str(inst)))
|
||||
else:
|
||||
req.write(self.t("error", error='No such method: ' + cmd))
|
||||
method = getattr(self, 'do_' + cmd, None)
|
||||
if method:
|
||||
try:
|
||||
method(req)
|
||||
except (hg.RepoError, revlog.RevlogError), inst:
|
||||
req.write(self.t("error", error=str(inst)))
|
||||
else:
|
||||
req.write(self.t("error", error='No such method: ' + cmd))
|
||||
finally:
|
||||
self.t = None
|
||||
|
||||
def changectx(self, req):
|
||||
if req.form.has_key('node'):
|
||||
|
Loading…
Reference in New Issue
Block a user