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)
|
sendmethod, (recvlbl, recvcase) = self.genAsyncCtor(md)
|
||||||
elif isctor:
|
elif isctor:
|
||||||
sendmethod = self.genBlockingCtorMethod(md)
|
sendmethod = self.genBlockingCtorMethod(md)
|
||||||
elif isdtor and isasync:
|
|
||||||
sendmethod, (recvlbl, recvcase) = self.genAsyncDtor(md)
|
|
||||||
elif isdtor:
|
elif isdtor:
|
||||||
sendmethod = self.genBlockingDtorMethod(md)
|
assert isasync
|
||||||
|
sendmethod, (recvlbl, recvcase) = self.genDtor(md)
|
||||||
elif isasync:
|
elif isasync:
|
||||||
(
|
(
|
||||||
sendmethod,
|
sendmethod,
|
||||||
|
|
@ -4781,7 +4780,7 @@ class _GenerateProtocolActorCode(ipdl.ast.Visitor):
|
||||||
)
|
)
|
||||||
return helper
|
return helper
|
||||||
|
|
||||||
def genAsyncDtor(self, md):
|
def genDtor(self, md):
|
||||||
actorvar = ExprVar("actor")
|
actorvar = ExprVar("actor")
|
||||||
method = MethodDefn(self.makeDtorMethodDecl(md, actorvar))
|
method = MethodDefn(self.makeDtorMethodDecl(md, actorvar))
|
||||||
|
|
||||||
|
|
@ -4805,39 +4804,6 @@ class _GenerateProtocolActorCode(ipdl.ast.Visitor):
|
||||||
|
|
||||||
return method, (lbl, case)
|
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):
|
def destroyActor(self, md, actorexpr, why=_DestroyReason.Deletion):
|
||||||
if md and md.decl.type.isCtor():
|
if md and md.decl.type.isCtor():
|
||||||
destroyedType = md.decl.type.constructedType()
|
destroyedType = md.decl.type.constructedType()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue