Thu Jun 28 12:43:36 2012: Request 78081 was acted upon.
Transaction: Correspondence added by BULKDD
       Queue: Win32-API
     Subject: ::Struct inside ::Struct is always inline, never a pointer
   Broken in: 0.68
    Severity: Normal
       Owner: Nobody
  Requestors: bul...@cpan.org
      Status: open
 Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=78081 >


On Thu Jun 28 04:14:26 2012, ACALPINI wrote:
> as mentioned in the documentation, when you create a structure named
> "FOO", a pointer type "LPFOO" is created automatically. you can use
> "LPFOO" as the type of a member in another structure. so I think this is
> a non-issue.
> 
> cheers,
> Aldo

Doesn't work currently. "LPFOO2" has an empty (or undef?) typedef hash
slice rather than the slice being the normal array ref. The problems
seem to be related to the fact that LPFOO2 isn't in
%Win32::API::Struct::Known.
version is 0.62
$VAR1 = [
          "LCCxxL",
          [
            1,
            193,
            194,
            2
          ],
          [
            bless( {
                     "__typedef__" => "FOO",
                     "dw1" => 1,
                     "dw2" => 2,
                     "strt1" => bless( {
                                         "__typedef__" => "FOO2",
                                         "c1" => 193,
                                         "c2" => 194,
                                         "typedef" => [
                                                        [
                                                          "c1",
                                                          "C",
                                                          "UCHAR"
                                                        ],
                                                        [
                                                          "c2",
                                                          "C",
                                                          "UCHAR"
                                                        ]
                                                      ]
                                       }, 'Win32::API::Struct' ),
                     "typedef" => [
                                    [
                                      "dw1",
                                      "L",
                                      "DWORD"
                                    ],
                                    [
                                      "strt1",
                                      ">",
                                      "FOO2"
                                    ],
                                    [
                                      "dw2",
                                      "L",
                                      "DWORD"
                                    ]
                                  ]
                   }, 'Win32::API::Struct' ),
            $VAR1->[2][0]{"strt1"},
            $VAR1->[2][0]{"strt1"},
            $VAR1->[2][0]
          ],
          12
        ];
$VAR1 = "\1\0\0\0\301\302\0\0\2\0\0\0";
$VAR1 = [
          "LL",
          [
            1,
            2
          ],
          [
            bless( {
                     "__typedef__" => "FOOPTR",
                     "dw1" => 1,
                     "dw2" => 2,
                     "strt1" => bless( {
                                         "__typedef__" => "LPFOO2",
                                         "c1" => 193,
                                         "c2" => 194,
                                         "typedef" => []
                                       }, 'Win32::API::Struct' ),
                     "typedef" => [
                                    [
                                      "dw1",
                                      "L",
                                      "DWORD"
                                    ],
                                    [
                                      "strt1",
                                      ">",
                                      "LPFOO2"
                                    ],
                                    [
                                      "dw2",
                                      "L",
                                      "DWORD"
                                    ]
                                  ]
                   }, 'Win32::API::Struct' ),
            $VAR1->[2][0]
          ],
          8
        ];
$VAR1 = "\1\0\0\0\2\0\0\0";

Attachment: struct.t
Description: Binary data

Reply via email to