AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Copy(S, 1) macht was? Wo ist der 3 Parameter?

Ein Thema von Rolf Frei · begonnen am 18. Jul 2022 · letzter Beitrag vom 5. Sep 2022
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.572 Beiträge
 
Delphi 12 Athens
 
#8

AW: Copy(S, 1) macht was? Wo ist der 3 Parameter?

  Alt 19. Jul 2022, 09:55
Wenn es sich hier um einen internen Puffer/String handeln würde,
dann könnte man es auch noch verstehen, wenn man ihn nicht direkt raus gibt.
(nicht dass wer böse pointert und den Inhalt der CONST verändert )

Aber hier kommt Value ja von extern und hat diese DB-Klasse garnicht zu interessieren.




Vermutlich:
  • jemand gibt von außen einen uniquen String rein
    • durch das CONST wird der Referenzzähler nicht hochgezählt (obwohl die Parameter ja eigentlich nun eine "Kopie" haben)
  • und dann ist jemand so blöd unvorsichtig und greift aus dem Event raus auf diese externe Variable zu und ändert sie, dann rauscht das nachträglich die Parameter durch
    • werden nur Chars geändert, dann geht die Änderung durch (Variable und Parameter zeigen ja auf den selben Speicher)
    • wird der String selber verändert (Speicher verschoben/freigegeben), dann zeigen die Parameter nun ins Nirvana (zeigen immernoch auf die alte Adresse)

Aber ganz im Ernst, dann läßt man eben das CONST weg und Gut ist. (die Referenzzählung funktioniert wieder und bei Änderung wird eine Kopie angelegt)
(wenn beim OnSetText, anstatt SetEditText, dann passiert es nur beim Eventaufruf innerhalb des IF)

Das "Unique" macht hier aber IMHO wirklich keinen Sinn. (ein Kommentar wäre tatsächlich von Nöten gewesen)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (19. Jul 2022 um 10:13 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz