Skip to content

[Omission] Appendix F.3/F.4 — missing 64-bit padding field in dynamic array/string memory layout #45

Description

@NickHodges

Section: Appendix F.3 (Dynamic Array Layout), F.4 (String Memory Layout)

Problem:
Both headers omit the 4-byte padding field present on 64-bit targets. The actual RTL structures (TDynArrayRec / StrRec in System.pas) have a _Padding: LongInt field before the documented fields under {$IFDEF CPUX64}, added specifically to keep the payload 16-byte aligned. As written, the documented Win64 header sizes don't match the actual 16-byte-aligned layout.

Suggested fix:
Add the conditional padding field to both diagrams for 64-bit platforms, and note its purpose (16-byte payload alignment).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions