Browse Source

* remove packed from TTlsDirectory, packed makes no sense for API structures on Windows
and it might cause them to get wrongly aligned, found by Alfred Glänzer and reported in #41428

florian 2 days ago
parent
commit
4dbb84f629
2 changed files with 4 additions and 4 deletions
  1. 3 3
      rtl/win/sysos.inc
  2. 1 1
      rtl/win/systlsdir.inc

+ 3 - 3
rtl/win/sysos.inc

@@ -21,9 +21,9 @@ const
    INVALID_HANDLE_VALUE = THandle(-1);
    INVALID_HANDLE_VALUE = THandle(-1);
 
 
    IGNORE = 0;               { Ignore signal }
    IGNORE = 0;               { Ignore signal }
-{$IF NOT DECLARED(INFINITE)}   
+{$IF NOT DECLARED(INFINITE)}
    INFINITE = longint($FFFFFFFF);     { Infinite timeout }
    INFINITE = longint($FFFFFFFF);     { Infinite timeout }
-{$ENDIF}   
+{$ENDIF}
 
 
    { flags for CreateFile }
    { flags for CreateFile }
    GENERIC_READ=$80000000;
    GENERIC_READ=$80000000;
@@ -188,7 +188,7 @@ type
     wMilliseconds: Word;
     wMilliseconds: Word;
   end;
   end;
 
 
-  TTlsDirectory=packed record
+  TTlsDirectory = record
     data_start, data_end : pointer;
     data_start, data_end : pointer;
     index_pointer, callbacks_pointer : pointer;
     index_pointer, callbacks_pointer : pointer;
     zero_fill_size : dword;
     zero_fill_size : dword;

+ 1 - 1
rtl/win/systlsdir.inc

@@ -36,7 +36,7 @@ var
    TlsKey : PDWord = @TlsKeyVar;
    TlsKey : PDWord = @TlsKeyVar;
 
 
 type
 type
-  TTlsDirectory=packed record
+  TTlsDirectory = record
     data_start, data_end : pointer;
     data_start, data_end : pointer;
     index_pointer, callbacks_pointer : pointer;
     index_pointer, callbacks_pointer : pointer;
     zero_fill_size : dword;
     zero_fill_size : dword;