[fpc-devel]Bugs in setlength for multidimensional dynamic arrays: first partial fix

Pavel V. Ozerski pavel at insect.mail.iephb.ru
Fri Sep 14 12:11:54 CEST 2001


Hello, I try to understand the way of working of setlength.

1)
A question: why tdynarraytypeinfo structure is so strange?

   tdynarraytypeinfo = packed record
      kind : byte;
      namelen : byte;
      { here the chars follow, we've to skip them }
      elesize : t_size;
      eletype : pdynarraytypeinfo;
   end;

If it is made so not for, e.g. Delphi compatibility, may be, that would be better, to reorder fileds in it to move
variable-length part to end of structure. This change could avoid strange and dangerous pointer operations to get
.elesize and .eletype values
 Example:

   tdynarraytypeinfo = packed record
      kind : byte;
      elesize : t_size;
      eletype : pdynarraytypeinfo;
      case integer of
       0:(namelen:byte);
       1:(name:string[255]);
   end;

2) but what is a mean, to include type names into executable? I think, for most cases the information about element size is enough.

Sincerely, Pavel






More information about the fpc-devel mailing list