AGB  ·  Datenschutz  ·  Impressum  







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

Getter und Setter eines Records inlinen?

Ein Thema von Zacherl · begonnen am 15. Aug 2013 · letzter Beitrag vom 25. Aug 2013
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.330 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Getter und Setter eines Records inlinen?

  Alt 16. Aug 2013, 09:53
Die Struktur ist überschaubar, du findest sie ab Zeile 563 in TTypeData in System.Typinfo.pas als Kommentar...
Davor steht noch der Name des Recordtyps als Shortstring, aber der Pointer auf die Typinfo zeigt auf den Record selbst.

In dieser Struktur findet sich die Property aber nicht. Deshalb ist es nicht ganz so einfach...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!

Geändert von jaenicke (16. Aug 2013 um 09:55 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#12

AW: Getter und Setter eines Records inlinen?

  Alt 16. Aug 2013, 10:17
Die Struktur ist überschaubar, du findest sie ab Zeile 563 in TTypeData in System.Typinfo.pas als Kommentar...
Davor steht noch der Name des Recordtyps als Shortstring, aber der Pointer auf die Typinfo zeigt auf den Record selbst.

In dieser Struktur findet sich die Property aber nicht. Deshalb ist es nicht ganz so einfach...
Ich meinte eher woran du zu sehen glaubst, dass es RTTI für Properties eines Record Typs gibt, wenn es in der TypInfo.pas doch nur TRecordTypeField und TRecordTypeMethod gibt, welche in den records stehen (daher in Kommentaren, weil sie so in der abgelegten Binärform nicht in einem Record definiert werden können u.a. wegen den packed shortstrings)

Ich behaupte nämlich, auch im XE4 Compiler wird keine RTTI für Properties eines Record Typs generiert - lasse mich aber gern vom Gegenteil überzeugen.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#13

AW: Getter und Setter eines Records inlinen?

  Alt 25. Aug 2013, 12:39
Habs mir grade mal in der Assembler-Ansicht angeschaut und wie es scheint werden die Properties korrekt inlined. Ich habe diese allerdings auch nicht als published, sondern als public deklariert (published funktioniert für Records auch überhaupt nicht, wie ich grade feststellen musste ). Soweit ich weiß werden doch nur published Properties per RTTI zugänglich gemacht oder nicht?
Ein kleiner Nachtrag bezüglich inline : Auch wenn Code als inline markiert ist und der Compiler auch tatsächlich entscheidet zu inlinen, bleibt der Code trotzdem als normal aufrufbare Funktion/Prozudur/Method vorhanden, da man ja auch Funktions-/Methodenzeiger verwenden könnte, um die Funktion aufzurufen. Inlinen geschieht auch unabhängig von der RTTI.

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 05:41 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