зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1319271 - Return early in Send__delete__ method when Send fails. r=billm
MozReview-Commit-ID: GOVSpzT3JlX
This commit is contained in:
Родитель
bc2ee20052
Коммит
f58e35a5a9
|
@ -4151,12 +4151,15 @@ class _GenerateProtocolActorCode(ipdl.ast.Visitor):
|
|||
|
||||
msgvar, stmts = self.makeMessage(md, errfnSendDtor, actorvar)
|
||||
sendok, sendstmts = self.sendAsync(md, msgvar, actorvar)
|
||||
failif = StmtIf(ExprNot(sendok))
|
||||
failif.addifstmt(StmtReturn.FALSE)
|
||||
|
||||
method.addstmts(
|
||||
stmts
|
||||
+ self.genVerifyMessage(md.decl.type.verify, md.params,
|
||||
errfnSendDtor, ExprVar('msg__'))
|
||||
+ sendstmts
|
||||
+ [ Whitespace.NL ]
|
||||
+ [ failif, Whitespace.NL ]
|
||||
+ self.dtorEpilogue(md, actor.var())
|
||||
+ [ StmtReturn(sendok) ])
|
||||
|
||||
|
@ -4180,6 +4183,9 @@ class _GenerateProtocolActorCode(ipdl.ast.Visitor):
|
|||
|
||||
replyvar = self.replyvar
|
||||
sendok, sendstmts = self.sendBlocking(md, msgvar, replyvar, actorvar)
|
||||
failif = StmtIf(ExprNot(sendok))
|
||||
failif.addifstmt(StmtReturn.FALSE)
|
||||
|
||||
method.addstmts(
|
||||
stmts
|
||||
+ self.genVerifyMessage(md.decl.type.verify, md.params,
|
||||
|
@ -4201,7 +4207,8 @@ class _GenerateProtocolActorCode(ipdl.ast.Visitor):
|
|||
method.addstmts(self.transition(md, 'in', actor.var(), reply=True))
|
||||
|
||||
method.addstmts(
|
||||
self.dtorEpilogue(md, actor.var())
|
||||
[ failif, Whitespace.NL ]
|
||||
+ self.dtorEpilogue(md, actor.var())
|
||||
+ [ Whitespace.NL, StmtReturn(sendok) ])
|
||||
|
||||
return method
|
||||
|
|
Загрузка…
Ссылка в новой задаче