- Assume 8 byte maximum alignment.

- Sync type testing data with the headers.
oldstable
Hans Leidekker 2004-05-04 00:38:27 +00:00 committed by Alexandre Julliard
parent 9759474371
commit e2bf33437d
3 changed files with 379 additions and 180 deletions

View File

@ -246,7 +246,7 @@ sub _refresh {
my $field_sizes = \${$self->{FIELD_SIZES}};
my $pack = $self->pack;
$pack = 4 if !defined($pack);
$pack = 8 if !defined($pack);
my $max_field_align = 0;

File diff suppressed because it is too large Load Diff

View File

@ -191,7 +191,7 @@ sub _find_align_kind_size {
$align = 4;
$kind = "pointer";
$size = 4;
} elsif(/^(?:(signed|unsigned)\s+)?(?:__int8|char)$/) {
} elsif(/^(?:(signed|unsigned)\s+)?(?:__int8|char|byte)$/) {
$align = 1;
$kind = defined($1) ? $1 : "signed";
$size = 1;
@ -216,18 +216,18 @@ sub _find_align_kind_size {
$kind = defined($1) ? $1 : "signed";
$size = 8;
} elsif (/^(?:double)$/) {
$align = 4;
$align = 8;
$kind = "float";
$size = 8;
} elsif (/^(?:long\s+double)$/) {
$align = 4;
$kind = "float";
$size = 12;
} elsif (/^H(?:DC|BITMAP|BRUSH|ICON|INSTANCE|MENU|METAFILE|WND)$/) {
} elsif (/^H(?:DC|BITMAP|BRUSH|ICON|INSTANCE|KEY|MENU|METAFILE|RESULT|WND)$/) {
$align = 4;
$kind = "unsigned";
$size = 4;
} elsif (/^LP(?:CSTR|CWSTR|DWORD|VOID|WSTR)$/) {
} elsif (/^LP(?:BYTE|CSTR|CWSTR|DWORD|STR|VOID|WSTR)$/) {
$align = 4;
$kind = "pointer";
$size = 4;
@ -235,9 +235,29 @@ sub _find_align_kind_size {
$align = 4;
$kind = "struct";
$size = 8;
} elsif (/^(?:LARGE_INTEGER)$/) {
} elsif (/^(?:VOID)$/) {
$align = 4;
$kind = "signed";
$size = 4;
} elsif (/^(?:SHORT)$/) {
$align = 2;
$kind = "unsigned";
$size = 2;
} elsif (/^(?:BYTE)$/) {
$align = 1;
$kind = "unsigned";
$size = 1;
} elsif (/^(?:DWORD)$/) {
$align = 4;
$kind = "signed";
$kind = "unsigned";
$size = 4;
} elsif (/^(?:WORD)$/) {
$align = 2;
$kind = "unsigned";
$size = 2;
} elsif (/^(?:LARGE_INTEGER)$/) {
$align = 8;
$kind = "union";
$size = 8;
} elsif (/^(struct|union)$/) {
$kind = $1;