michael@0: include protocol PTestDataStructuresSub; michael@0: michael@0: using struct mozilla::null_t from "ipc/IPCMessageUtils.h"; michael@0: using nsIntRegion from "nsRegion.h"; michael@0: michael@0: namespace mozilla { michael@0: namespace _foo { michael@0: michael@0: union IntDouble { michael@0: int; michael@0: double; michael@0: }; michael@0: michael@0: struct SIntDouble { michael@0: int i; michael@0: double d; michael@0: }; michael@0: michael@0: union IntDoubleArrays { michael@0: int; michael@0: int[]; michael@0: double[]; michael@0: }; michael@0: michael@0: struct SIntDoubleArrays { michael@0: int i; michael@0: int[] ai; michael@0: double[] ad; michael@0: }; michael@0: michael@0: struct ActorWrapper { michael@0: PTestDataStructuresSub actor; michael@0: }; michael@0: michael@0: union Actors { michael@0: int; michael@0: int[]; michael@0: PTestDataStructuresSub[]; michael@0: }; michael@0: michael@0: struct SActors { michael@0: int i; michael@0: int[] ai; michael@0: PTestDataStructuresSub[] ap; michael@0: }; michael@0: michael@0: union Unions { michael@0: int; michael@0: int[]; michael@0: PTestDataStructuresSub[]; michael@0: Actors[]; michael@0: }; michael@0: michael@0: struct Structs { michael@0: int i; michael@0: int[] ai; michael@0: PTestDataStructuresSub[] ap; michael@0: SActors[] aa; michael@0: }; michael@0: michael@0: union WithStructs { michael@0: int; michael@0: int[]; michael@0: PTestDataStructuresSub[]; michael@0: SActors[]; michael@0: Structs[]; michael@0: }; michael@0: michael@0: struct WithUnions { michael@0: int i; michael@0: int[] ai; michael@0: PTestDataStructuresSub[] ap; michael@0: Actors[] aa; michael@0: Unions[] au; michael@0: }; michael@0: michael@0: struct CommonAttrs { bool dummy; }; michael@0: struct FooAttrs { int dummy; }; michael@0: struct BarAttrs { float dummy; }; michael@0: union SpecificAttrs { michael@0: FooAttrs; michael@0: BarAttrs; michael@0: }; michael@0: struct Attrs { michael@0: CommonAttrs common; michael@0: SpecificAttrs specific; michael@0: }; michael@0: struct SetAttrs { michael@0: PTestDataStructuresSub x; michael@0: Attrs attrs; michael@0: }; michael@0: union Op { null_t; SetAttrs; }; michael@0: michael@0: struct ShmemStruct { michael@0: int i; michael@0: Shmem mem; michael@0: }; michael@0: michael@0: union ShmemUnion { michael@0: int; michael@0: Shmem; michael@0: }; michael@0: michael@0: struct Empty { }; michael@0: michael@0: } // namespace _foo michael@0: } // namespace mozilla