Closed
Bug 716631
Opened 13 years ago
Closed 6 years ago
IPDL compiler gets confused about C++ manager type for multi-managed protocols
Categories
(Core :: IPC, defect)
Core
IPC
Tracking
()
RESOLVED
WORKSFORME
People
(Reporter: ajuma, Unassigned)
References
Details
In a 'manages' hierarchy, declaring the top-level protocol as 'sync' (rather than 'rpc') causes a compile-time error even when this protocol only has sync messages. See Bug 711168, Comment 9 for an example of this problem.
The problem here is that the IPDL compiler chooses the C++ manager type based on the semantics of the top-level protocol, but in the case of PLayers, there are *two* toplevel protocols above it, with different semantics. The same bug would have occurred if PContent was 'sync' and PCompositor was 'async', e.g.
The C++ manager type is just an internal implementation detail. I think the right fix here is to do away with the IProtocolManager parameterization, and just use RPCListener for all channel types. We'll just RUNTIMEABORT() the methods in SyncListener and AsyncListener that shouldn't be reached.
^^^ this cjones is :warhammer in bugzilla.
Summary: IPDL compiler requires top-level protocol of 'manages' hierarchy to be declared as 'rpc' → IPDL compiler gets confused about C++ manager type for multi-managed protocols
Comment 3•11 years ago
|
||
Hm, it seems this was fixed (in a different bug ?)
I changed:
intr protocol PCompositor
to:
sync protocol PCompositor
and it builds
![]() |
||
Comment 4•6 years ago
|
||
(In reply to Jan Varga [:janv] from comment #3)
> Hm, it seems this was fixed (in a different bug ?)
> I changed:
> intr protocol PCompositor
> to:
> sync protocol PCompositor
>
> and it builds
Going to close this based on the above.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WORKSFORME
Comment 5•6 years ago
|
||
For reference, comment #1 refers to a few things that have been removed: the different channel types for sync/async/rpc were merged in bug 901789 (although that landed a week after comment #3 was made), and more recently IProtocolManager went away as part of bug 792652. So it looks like this bug isn't possible anymore.
You need to log in
before you can comment on or make changes to this bug.
Description
•