(BTW, nur mal aus Interesse, was gibt `SizeOf (Text)' under FPC?
FPC: 572 GPC: 16712
Dann ist das in FPC zumindest kein einfacher Zeiger (und klingt fast danach, als ob es auch einen Buffer enthält).
Wenn man die interne Struktur kennt (die kann man natürlich dem Quellcode (Compiler und/oder RTL) entnehmen), kann man sich überlegen, ob es beim Kopieren zu Problemen kommen kann. Ich vermute ja (zumindest wäre es in BP's und GPC's Fall so), aber ich will ihnen nichts unterstellen und habe selbst auch keine große Lust, das näher zu untersuchen.
Du kannst sie ja einfach mal danach fragen. Vielleicht ist es nur ein Versehen, dass die Zuweisung überhaupt geht (so wie das `packed object' in GPC früher), und sie haben die möglichen Probleme nicht bedacht ...
PS: War die Mail absichtlich privat? Wenn nicht, kannst du meine Antwort auch gerne an die Liste weiterleiten.
Frank
On Sat, Mar 08, 2003 at 02:24:32AM +0100, Frank Heckenbach wrote:
(BTW, nur mal aus Interesse, was gibt `SizeOf (Text)' under FPC?
FPC: 572 GPC: 16712
Dann ist das in FPC zumindest kein einfacher Zeiger (und klingt fast danach, als ob es auch einen Buffer enthält).
Wenn man die interne Struktur kennt (die kann man natürlich dem Quellcode (Compiler und/oder RTL) entnehmen), kann man sich überlegen, ob es beim Kopieren zu Problemen kommen kann. Ich vermute ja (zumindest wäre es in BP's und GPC's Fall so), aber ich will ihnen nichts unterstellen und habe selbst auch keine große Lust, das näher zu untersuchen.
Naja, so wichtig ist es mir jetzt auch nicht mehr.
On Sat, Mar 08, 2003 at 02:24:32AM +0100, Frank Heckenbach wrote:
(BTW, nur mal aus Interesse, was gibt `SizeOf (Text)' under FPC?
FPC: 572 GPC: 16712
Dann ist das in FPC zumindest kein einfacher Zeiger (und klingt fast danach, als ob es auch einen Buffer enthält).
Wenn man die interne Struktur kennt (die kann man natürlich dem Quellcode (Compiler und/oder RTL) entnehmen), kann man sich überlegen, ob es beim Kopieren zu Problemen kommen kann. Ich vermute ja (zumindest wäre es in BP's und GPC's Fall so), aber ich will ihnen nichts unterstellen und habe selbst auch keine große Lust, das näher zu untersuchen.
Ja, du hast recht. Es dürfte zu Problemen kommen.
Die haben einen internen Buffer, der aber nachträglich noch auf einen anderen Bereich gesetzt werden kann.
| const | TextRecNameLength = 256; | TextRecBufSize = 256; |type | TextBuf = array[0..TextRecBufSize-1] of char; | TextRec = Packed Record | Handle, | Mode, | bufsize, | _private, | bufpos, | bufend : longint; | bufptr : ^textbuf; | openfunc, | inoutfunc, | flushfunc, | closefunc : pointer; | UserData : array[1..16] of byte; | name : array[0..textrecnamelength-1] of char; | buffer : textbuf; | End;
Andreas K. Foerster schrieb:
On Sat, Mar 08, 2003 at 02:24:32AM +0100, Frank Heckenbach wrote:
(BTW, nur mal aus Interesse, was gibt `SizeOf (Text)' under FPC?
FPC: 572 GPC: 16712
Dann ist das in FPC zumindest kein einfacher Zeiger (und klingt fast danach, als ob es auch einen Buffer enthält).
Wenn man die interne Struktur kennt (die kann man natürlich dem Quellcode (Compiler und/oder RTL) entnehmen), kann man sich überlegen, ob es beim Kopieren zu Problemen kommen kann. Ich vermute ja (zumindest wäre es in BP's und GPC's Fall so), aber ich will ihnen nichts unterstellen und habe selbst auch keine große Lust, das näher zu untersuchen.
Ja, du hast recht. Es dürfte zu Problemen kommen.
Die haben einen internen Buffer, der aber nachträglich noch auf einen anderen Bereich gesetzt werden kann.
Ja, aber die "Zeiger" (`bufpos' usw.) existieren trotzdem in jeder Kopie und ergeben vermutlich Probleme. (Ganz zu schweigen natürlich davon, wenn man eine solche kopierte Datei schließt und neu öffnet oder so. Dann enthält die andere Kopie vermutlich ein Handle, das im günstigsten Fall ungültig ist, aber vielleicht auch zu der neu geöffneten -- oder einer ganz anderen, später geöffneten -- Datei gehört ...)
Frank