Structs declared in ipdlh files don't get typedefs in classes in which they're used.

NEW
Unassigned

Status

()

Core
IPC
6 years ago
6 years ago

People

(Reporter: Ben Turner (not reading bugmail, use the needinfo flag!), Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

In an ipdlh file I have this:

  namespace foo
  {
    struct A
    {
      uint8_t something;
    };
  }

Then in my protocol file I have this:

  namespace foo
  {
    struct B
    {
      A something;
    };
  }

  protocol PFoo
  {
    SendSomething(B arg);
  };

Basically the code generated comes out to this:

  class /*NS_ABSTRACT_CLASS*/ PFoo:
      protected mozilla::ipc::RPCChannel::RPCListener,
      protected mozilla::ipc::IProtocolManager<mozilla::ipc::RPCChannel::RPCListener>
  {
  ...
      typedef foo::B B;
  ...
      void
      Write(
              const A& __v,
              Message* __msg);
  ...
  };

All the other types we use get typedefs. The ipdlh-included type does not, and so the compile fails.
You need to log in before you can comment on or make changes to this bug.