AGB  ·  Datenschutz  ·  Impressum  







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

IOS Compiler Bug ??? ARC

Ein Thema von arnof · begonnen am 19. Mai 2013 · letzter Beitrag vom 23. Mai 2013
Antwort Antwort
arnof

Registriert seit: 25. Apr 2013
1.254 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

IOS Compiler Bug ??? ARC

  Alt 19. Mai 2013, 09:53
Hi,

ich plage mich schon länger mit einem seltsamen Problem rum wo ich auch schon mal was zu Debuginfos hier nachgefragt habe.

Ich habe nun den Punkt lokalisiert, bei dem sich die App ins Nirwana verabschiedet:

Function die ein Objekt zurückgibt, welches in der Funktion erzeugt wird und auch noch andere Objekt enthält:

function Vectorizer.findObject(image:TBitmap):TAFSImageObje ct;
..
..
obj:=TAFSImageObjet.Create(....);
.....

die stelle wo es hängenbleibt ist genau:

result:=obj;

hier will der Comilper irgendwas freigeben und crasht dabei ?

Ich habe es über die Debugausgaben ermittelt:

{$IFDEF IOS}
NSLog((NSStr('FOUND Obj'+obj.RefCount.ToString) As ILocalObject).GetObjectID);
{$ENDIF}

result:=obj;

{$IFDEF IOS}
NSLog((NSStr('to Result'+result.RefCount.ToString) As ILocalObject).GetObjectID);
{$ENDIF}

Das passiert erst beim 2'ten mal, wenn die Routine aufgerufen wird.

Der 100% gleiche Code läuft aber Problemlos unter Windows und MacOS.

Hat jemand ein Tipp da das den neuen Compiler mit der ARC Funktion betrifft!
  Mit Zitat antworten Zitat
arnof

Registriert seit: 25. Apr 2013
1.254 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

AW: IOS Compiler Bug ??? ARC

  Alt 19. Mai 2013, 12:19
also hier ist definitiv noch ein dicker Käfer begraben

Durch um designen kann ich die Durchlaufzahl erhöhen die Objekte werden in einer List gespeichert. wenn man hier statt über eine variable als Zwischenspeicher direkt in eine list speichert, dann gehts über 30 durchläuft, bevor er an weiteren komischen stellen abschmiert .....
Er schmiert immer an den Übergängen ab, wo lokale Variablen vom Compiler freigegeben werden, also resultzuweisungen bzw. am ende von funktionen wo man keinen einfluss nehmen kann .....
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: IOS Compiler Bug ??? ARC

  Alt 19. Mai 2013, 12:28
Kannst du mal eine Mini-Projekt anhängen, wo dieser Fehler nachvollziehbar ist?

Ich vermute mal, dass du eine ungültige Instanz-Referenz über das Result reinschleust.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Insider2004
(Gast)

n/a Beiträge
 
#4

AW: IOS Compiler Bug ??? ARC

  Alt 19. Mai 2013, 12:45
Tritt der Fehler auch in Lazarus auf?
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: IOS Compiler Bug ??? ARC

  Alt 19. Mai 2013, 13:37
Ein Code-Beispiel wäre schon hilfreich.
Hast Du mal versucht, das Attribut [unsafe] zu verwenden? Für erste Tests gern auch großzügiger, einschränken ließe sich das dann ja immer noch. Mit diesem Attribut unterdrückst Du, dass der Compiler etwas freigibt, bevor es anderweitig referenziert wird.

Anwendungsbeispiele:
Delphi-Quellcode:
var [Unsafe] Obj1: TObject;
///
[Result: Unsafe] function GetObject: TObject;
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
arnof

Registriert seit: 25. Apr 2013
1.254 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: IOS Compiler Bug ??? ARC

  Alt 21. Mai 2013, 09:11
Danke für die Tipps, ich werde das mit unsafe mal versuchen, ansonsten mache ich mal ein Beispiel Projekt da das echte zu Komplex ist.
  Mit Zitat antworten Zitat
arnof

Registriert seit: 25. Apr 2013
1.254 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

AW: IOS Compiler Bug ??? ARC

  Alt 23. Mai 2013, 08:20
Erstmal vielen Dank, durch den massiven Einsatz von Unsafe habe ich nun alle Schutzverletzungen entfernen können.
  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 21:42 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