SIGSEGV beim Clear einer TLineSerie in TACharts (erledigt)

Rund um die LCL und andere Komponenten
Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 282
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 2.2.4, FPC3.2.2
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

Re: SIGSEGV beim Clear einer TLineSerie in TACharts (erledigt)

Beitrag von h-elsner »

So, jetzt habe ich 'inline' in procedure TListChartSource.Clear; auskommentiert und "Clean up and Build.." gemacht und danach ist der Fehler nicht mehr reproduzierbar. Wenn ich inline wieder eintrage auch nicht. Es ist einfach weg und auch mit anderen Quellcodes nicht mehr reproduzierbar.

@sstvmaster: Kannst du ohne vorher etwas zu verändern mal "Clean up and Build.." ausführen und schauen, ob auch bei dir dann alles OK ist?

Gruß HE

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 282
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 2.2.4, FPC3.2.2
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

Re: SIGSEGV beim Clear einer TLineSerie in TACharts (erledigt)

Beitrag von h-elsner »

wp_xyz hat geschrieben: Do 2. Sep 2021, 19:17 Könntest du das mal auch in TListChartSource.Clear einbauen?

Code: Alles auswählen

procedure TListChartSource.Clear; inline;
var
  i: Integer;
begin
  for i := FData.Count - 1 downto 0 do
  begin
    Dispose(Item[i]);
    FData.Delete(i);
   end;
   {
  for i := 0 to FData.Count - 1 do
    Dispose(Item[i]);
    }
  //FData.Clear;  // Kann eigentlich jetzt entfallen, da die Liste nun leer ist.
  ClearCaches;
  Notify;
end;
Dies funktioniert. Wenn ich aber die alte procedure wieder herstelle, geht diese dann auch. :shock:

Ich probiere jetzt mal beide Prozeduren mit vorhergehender Lazarus Komplettinstallation.

Gruß HE

Gruß HE

wp_xyz
Beiträge: 5156
Registriert: Fr 8. Apr 2011, 09:01

Re: SIGSEGV beim Clear einer TLineSerie in TACharts (erledigt)

Beitrag von wp_xyz »

OK, das schlägt in dieselbe Kerbe wie die vorige Beobachtung: Durch die Änderung im Quelltext wird wegen -gw2 eine Neukompilierung von TAChart erzwungen, und damit ist das Problem verschwunden.

Hätte man auch gleich drauf kommen können... Denn mit dem sauberen Neukompilieren des Projekts, Packages oder schlimmstenfalls der IDE lassen sich viele "seltsame" Probleme beheben.

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 282
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 2.2.4, FPC3.2.2
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

Re: SIGSEGV beim Clear einer TLineSerie in TACharts (erledigt)

Beitrag von h-elsner »

Ja, genauso ist es. Wenn ich komplett neu installiere, dann die Prozedur austausche, geht alles und es geht danach auch mit der Originalprozedur. Scheinbar holt man sich irgend etwas Vorkompiliertes rein, welches nicht passt.

Wieder was gelernt. Gut dass es den Menüpunkt "Alles neu macht Mai" gibt. Wie blöde, ich hatte früher schon mal seltsame Probleme mit meinen Programmen, wo das löschen des Unterverzeichnisses 'lib' im Projektordner geholfen hat.

Viele Grüße, HE

Antworten