forked from mirrors/gecko-dev
Bug 1885018 - Remove unnecessary generation code in the IPDL compiler r=ipc-reviewers,mccr8
Differential Revision: https://phabricator.services.mozilla.com/D204657
This commit is contained in:
parent
19fb5724a7
commit
b9343c37c9
1 changed files with 3 additions and 37 deletions
|
|
@ -4590,10 +4590,9 @@ class _GenerateProtocolActorCode(ipdl.ast.Visitor):
|
|||
sendmethod, (recvlbl, recvcase) = self.genAsyncCtor(md)
|
||||
elif isctor:
|
||||
sendmethod = self.genBlockingCtorMethod(md)
|
||||
elif isdtor and isasync:
|
||||
sendmethod, (recvlbl, recvcase) = self.genAsyncDtor(md)
|
||||
elif isdtor:
|
||||
sendmethod = self.genBlockingDtorMethod(md)
|
||||
assert isasync
|
||||
sendmethod, (recvlbl, recvcase) = self.genDtor(md)
|
||||
elif isasync:
|
||||
(
|
||||
sendmethod,
|
||||
|
|
@ -4781,7 +4780,7 @@ class _GenerateProtocolActorCode(ipdl.ast.Visitor):
|
|||
)
|
||||
return helper
|
||||
|
||||
def genAsyncDtor(self, md):
|
||||
def genDtor(self, md):
|
||||
actorvar = ExprVar("actor")
|
||||
method = MethodDefn(self.makeDtorMethodDecl(md, actorvar))
|
||||
|
||||
|
|
@ -4805,39 +4804,6 @@ class _GenerateProtocolActorCode(ipdl.ast.Visitor):
|
|||
|
||||
return method, (lbl, case)
|
||||
|
||||
def genBlockingDtorMethod(self, md):
|
||||
actorvar = ExprVar("actor")
|
||||
method = MethodDefn(self.makeDtorMethodDecl(md, actorvar))
|
||||
|
||||
method.addstmt(self.dtorPrologue(actorvar))
|
||||
|
||||
msgvar, stmts = self.makeMessage(md, errfnSendDtor, actorvar)
|
||||
|
||||
replyvar = self.replyvar
|
||||
sendok, sendstmts = self.sendBlocking(md, msgvar, replyvar, actorvar)
|
||||
method.addstmts(
|
||||
stmts
|
||||
+ [Whitespace.NL, StmtDecl(Decl(Type("UniquePtr<Message>"), replyvar.name))]
|
||||
+ sendstmts
|
||||
)
|
||||
|
||||
destmts = self.deserializeReply(
|
||||
md, replyvar, self.side, errfnSend, errfnSentinel(), actorvar
|
||||
)
|
||||
ifsendok = StmtIf(ExprLiteral.FALSE)
|
||||
ifsendok.addifstmts(destmts)
|
||||
ifsendok.addifstmts(
|
||||
[Whitespace.NL, StmtExpr(ExprAssn(sendok, ExprLiteral.FALSE, "&="))]
|
||||
)
|
||||
|
||||
method.addstmt(ifsendok)
|
||||
|
||||
method.addstmts(
|
||||
self.dtorEpilogue(md, actorvar) + [Whitespace.NL, StmtReturn(sendok)]
|
||||
)
|
||||
|
||||
return method
|
||||
|
||||
def destroyActor(self, md, actorexpr, why=_DestroyReason.Deletion):
|
||||
if md and md.decl.type.isCtor():
|
||||
destroyedType = md.decl.type.constructedType()
|
||||
|
|
|
|||
Loading…
Reference in a new issue