On Sat, 18 May 2019, Zamrony P. Juhara via fpc-pascal wrote:

I do not think so, because custfpcgi.pp is using many const and types declared 
in fastcgi.pp. removing it will cause rewrite in many parts of custfcgi units

You are right.

I should not try to answer questions based on memory alone :(

I did some digging and here is the long explanation:

The record definition is a formal record definition. The buffer was defined as 1024 bytes (1K), but this is completely arbitrary. It could have been [0..0], or [0..MaxInt]. Probably [0..0] would have been better. I will change it to that.

In practice a FCGI_ContentRecord is never used. A PFCGI_ContentRecord
(pointer to) is used to typecast an array of byte and extract the necessary header fields from the array.

It's a little like the typinfo structures: they describe memory layouts, but
some structures are just formal, for example

TVmtFieldTable =   record
        Count: Word;
        ClassTab: PVmtFieldClassTab;
        { should be array[Word] of TFieldInfo;  but
          Elements have variant size! force at least proper alignment }
        Fields: array[0..0] of TVmtFieldEntry;
      end;

The FCGI_ContentRecord definition should be seen in the same light: a formal
definition.

Michael.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to