[rt.cpan.org #78081] ::Struct inside ::Struct is always inline, never a pointer

[email protected] ("Daniel Dragan via RT")
Newsgroups perl.libwin32
Message-ID <[email protected]>
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: [email protected]
      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.
output.txt (text/plain, 3.5 KB)
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";
struct.t (application/octet-stream, 1.2 KB) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.