AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Klatsch und Tratsch Delphi-Eigentümer hat neuen Besitzer?
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi-Eigentümer hat neuen Besitzer?

Ein Thema von ThomasBab · begonnen am 8. Okt 2015 · letzter Beitrag vom 21. Nov 2015
Antwort Antwort
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

AW: Delphi-Eigentümer hat neuen Besitzer?

  Alt 20. Nov 2015, 15:26
Soweit ich das gesehen und gelesen habe, ist ARC kein Compiler-Feature.
Dann zeig mal deine von Hand eingefügten ObjAddRef Aufrufe an allen Stellen wo Objektvariablen zugewiesen werden. Warum heißt "Compiler-Magic" denn "Compiler-Magic".

Zitat:
Z.B. der leicht geändert Delphi X86 Compiler erzeugt ja auch den Code für den iOS Simulator, mit ARC.
Das "leicht geändert" ist ein ifdef beim Bauen des Compilers aus seinem C-Code, welches ARC (und ein paar andere Sachen) aktiviert.


Die System-Unit ist übrigens eine ganz spezielle Unit. Sie kann auch nicht ohne einen bestimmten Compiler-Parameter kompiliert werden. Der Compiler behandelt die System-Unit speziell und nutzt deren Funktionen für die Compiler-Magic (automatisches Referenzzählen und anderes). Die Entwickler des Compilers wollten halt nicht den Code für die Compiler-Magic in Maschienensprache im Compiler als Blob ablegen und haben sich für die einfach zu wartende Variante entschieden.

Geändert von jbg (20. Nov 2015 um 15:29 Uhr)
  Mit Zitat antworten Zitat
pertzschc

Registriert seit: 29. Jul 2005
Ort: Leipzig
305 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Delphi-Eigentümer hat neuen Besitzer?

  Alt 20. Nov 2015, 15:38
Könnt Ihr mich bitte nochmal aufschlauen, was eigentlich "ARC" ist?
Danke, Christoph
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.114 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Delphi-Eigentümer hat neuen Besitzer?

  Alt 20. Nov 2015, 15:47
Automatic Reference Counting.

Schonmal einen Record freigegeben? Oder ein Array? Ein Interface? Nein? Richtig, denn die funktionieren seit Urzeiten mit ARC. Wenn keine Referenz mehr auf das "Objekt" zeigt wird es freigegeben werden. Im Gegensatz zu einem Garbage Collector (wie z.B. unter Java oder .NET) ist somit sogar deterministisch wann ein Objekt freigegeben wird.

Im "alten" Compiler für Windows und Mac OS haben Objekte (alles was sich von TObject) ableitet KEINE automatische Referenzzählung. Deshalb das ganze try..finally..destroy-Geraffel.
  Mit Zitat antworten Zitat
samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#4

AW: Delphi-Eigentümer hat neuen Besitzer?

  Alt 21. Nov 2015, 14:45
Bei Records gibt es ARC? Seit wann das denn?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Delphi-Eigentümer hat neuen Besitzer?

  Alt 21. Nov 2015, 15:00
Bei Records gibt es ARC? Seit wann das denn?
Ein ARC der Wert von 0 (Record freigeben) und 1 (Record nicht freigeben) haben kann
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
SMO

Registriert seit: 20. Jul 2005
178 Beiträge
 
Delphi XE6 Professional
 
#6

AW: Delphi-Eigentümer hat neuen Besitzer?

  Alt 21. Nov 2015, 15:09
Gilt auch nur für Records, die managed types (String, dynamische Arrays, Interfaces) enthalten. Dann werden nur Felder dieses Typs per Compiler-Magic initialisiert und wieder freigegeben. Es ist also nicht wirklich ein Feature von Records an sich.

Geändert von SMO (21. Nov 2015 um 15:13 Uhr)
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#7

AW: Delphi-Eigentümer hat neuen Besitzer?

  Alt 21. Nov 2015, 15:19
ARC spielt hier keine Rolle, weil ein Record auf dem Stack liegt.
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz