Anyone happen to know why all the memory management routines in Delphi take a signed rather than unsigned integer?

Anyone happen to know why all the memory management routines in Delphi take a signed rather than unsigned integer? Even routines that support 64-bit memory addresses use NativeInt rather than NativeUInt? A quick glance around the OS and language landscape suggests unsigned is the norm.

Using signed integers unnecessarily limits the maximum size of contiguous memory that can be allocated and requires all those routines to check that parameters are not less than zero. Why would someone purposefully do this?

Comments