Allow ManagedEndPoints as members of unions/structs
Categories
(Core :: IPC, defect, P1)
Tracking
()
People
(Reporter: peterv, Assigned: peterv)
References
(Blocks 1 open bug)
Details
Attachments
(4 files)
Currently the IPDL code generator generates code that doesn't compile (mainly because ManagedEndPoints can't be copied).
Assignee | ||
Comment 1•5 years ago
|
||
Assignee | ||
Comment 2•5 years ago
|
||
Depends on D28548
Assignee | ||
Comment 3•5 years ago
|
||
Depends on D28549
Assignee | ||
Comment 4•5 years ago
|
||
Depends on D28550
Assignee | ||
Comment 5•5 years ago
|
||
I ended up special-casing ManagedEndPoints, instead of doing these changes for everything that returns true for _cxxTypeNeedsMove. When I tried to use _cxxTypeNeedsMove I ran into code using the copy operator= for things like arrays, and I didn't want to fix up the whole tree for instances like that.
Comment 6•5 years ago
|
||
As this involves at least one change to the IPDL front end (type.py), please add some basic tests for this to ipc/ipdl/test/ipdl/, probably just in the ok/ subdirectory. You can run these tests by going to <objdir>/ipc/ipdl/test/ and running make check.
Updated•5 years ago
|
Assignee | ||
Comment 7•5 years ago
|
||
(In reply to Andrew McCreight [:mccr8] from comment #6)
As this involves at least one change to the IPDL front end (type.py), please add some basic tests for this to ipc/ipdl/test/ipdl/, probably just in the ok/ subdirectory. You can run these tests by going to <objdir>/ipc/ipdl/test/ and running make check.
The existing tests in that directory for Endpoint and ManagedEndpoint should be sufficient. The problems manifest themselves in the generated C++ code, which I don't think these tests try to compile. I'll try to write the generated C++ tests that are missing for Endpoints and ManagedEndpoints in structs/unions (if there had been existing tests they would have failed before).
Assignee | ||
Comment 8•5 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=eb61a5a3c04b6e5495dda57a004d68c30fddca1e
Updated•5 years ago
|
Updated•5 years ago
|
Assignee | ||
Comment 9•5 years ago
|
||
Checked this in to ash:
https://hg.mozilla.org/projects/ash/rev/534f55dc3b864de991c481bddbdb36081547fdbf
https://hg.mozilla.org/projects/ash/rev/a989da45e5386db183fc44b92ca0be6689890ac9
https://hg.mozilla.org/projects/ash/rev/0f5bfffa449f1845c591146b2f62c3ffcb809f61
https://hg.mozilla.org/projects/ash/rev/5d6a6518fd988535c869f94b2f3dbc02eef546a7
Updated•5 years ago
|
Comment 10•4 years ago
|
||
Pushed by pvanderbeken@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/c4a3bbc944a3 Allow ManagedEndPoints as members of unions/structs. Part 1: Include headers for parent and child actors. r=nika https://hg.mozilla.org/integration/mozilla-inbound/rev/9f3173e9665c Allow ManagedEndPoints as members of unions/structs. Part 2: add a typedef for ManagedEndpoint if it's used in a struct or union. r=nika https://hg.mozilla.org/integration/mozilla-inbound/rev/618728a9d10f Allow ManagedEndPoints as members of unions/structs. Part 3: don't generate code that copies members of unions and structs if they contain a ManagedEndpoint. r=nika https://hg.mozilla.org/integration/mozilla-inbound/rev/bb1572f21b81 Allow ManagedEndPoints as members of unions/structs. Part 4: Forward declare the inner type of a ManagedEndpoint. r=nika
![]() |
||
Comment 11•4 years ago
|
||
bugherder |
Description
•