Open Bug 898411 Opened 11 years ago Updated 2 years ago

don't generate multiple copies of ::Read and ::Write for IPDL structures

Categories

(Core :: IPC, defect, P3)

defect

Tracking

()

People

(Reporter: froydnj, Unassigned)

Details

When a protocol passes an IPDL struct in a message, we generate a separate copy of ::Read (similarly for ::Write) for that structure in the parent and the child protocol implementations.  And we do this for every protocol.  Which can get a bit ridiculous: we have something like 16 copies of ::Read(StandardURLParams* [...]), which are decent-sized and include a lot of redundant string data.

We should define ::Read and ::Write methods on the appropriate Structs and use those instead, possibly with associated ParamTraits definitions so the codegen elsewhere doesn't become too complicated.
This is a little complicated by differing Read and Write functions in the parent and child, so we'd have to exclude structures (and unions) whose fields (recursively) include a remote actor.
Note, the current situation also effectively prevents custom ParamTraits serializers from using generated types.  This is causing me problems because I wanted to write a custom serializer for a struct that owned a PrincipalInfo.
Priority: -- → P3
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.