Warnung vor PB3.92 und Linked List

Ankündigungen PureBasic oder die Community betreffend.
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Warnung vor PB3.92 und Linked List

Beitrag von GPI »

ListIndex funktioniert nicht mal ansatzweise zuverlässig. Ein einfaches EndIf zerstört diesen Index

Code: Alles auswählen

NewList test.l() 

AddElement(test()) 
AddElement(test()) 
AddElement(test()) 
AddElement(test()) 

Debug ListIndex(test()) 
If #True 
 Pos=ListIndex(test()) 
 SelectElement(test(),0) 
 ChangeCurrentElement(test(),Pos) 
 Debug ListIndex(test()) 
 a$="10" 
EndIf 
Debug ListIndex(test())
also jeder der Linked List verwendet, sollte auf ein Bugfix waren...
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
freak
PureBasic Team
Beiträge: 766
Registriert: 29.08.2004 00:20
Wohnort: Stuttgart

Beitrag von freak »

Lies dir bitte nochmal die Hilfe zu ChangeCurrentElement() durch.

> ChangeCurrentElement(test(),Pos)

Das ist hier fehl am Platz. SelectElement() solltest du besser verwenden.

Bitte solche *Warnungen* in Zukunft erst posten wenn jemand bestätigt hat
dass es auch ein bug ist.
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Beitrag von GPI »

Tippfehler, probier das

Code: Alles auswählen

NewList test.l() 

AddElement(test()) 
AddElement(test()) 
AddElement(test()) 
AddElement(test()) 

Debug ListIndex(test()) 
If #True 
  Pos=@test()
  SelectElement(test(),0) 
  ChangeCurrentElement(test(),Pos) 
  Debug ListIndex(test()) 
  a$="10" 
EndIf 
Debug ListIndex(test())
der gag ist ja, das beim zweiten Debug aufeinmal null kommt, vorher korrekt 3

p.s.: IDE verwendet auch linked list. Da könnte der Bug heftig zuschlagen.


Edit: Selbst das obrige Beispiel ist lustig. Warum zeigt das Debug vor den EndIf 3 und danach aufeinmal 0? Da liegt nur das A$="10" dazwischen, aber das kann man entfernen und es ändert sich nichts. Der Fehler tritt da definitiv auch auf!
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

Sieht aus als wenn ListIndex() kaputt wäre. Sogar ohne die IF-Schleife und ohne das "a$ = ..." kommt beim letzten ListIndex() bei mir 0 raus, eine Zeile davor noch 3.
Allerdings ist das aktuelle Element immer noch das korrekte.

In folgendem Code wird der Index falsch erkannt, erst 3, nächste Zeiel plötzlich 0, der Wert bleibt dennoch der Wert, welchen man dem 3er Element zugewiesen hat. Also das Element wechselt nicht zu 0 sondern "nur" der Befehl "ListIndex()" ist wohl fehlerhaft.:

Code: Alles auswählen

NewList test.l()

AddElement(test())
AddElement(test())
AddElement(test())
AddElement(test())

Debug "Index: " +Str(ListIndex(test()))
test() = 10
Pos.l=@test()
SelectElement(test(),0)
test() = 11
ChangeCurrentElement(test(),Pos)
Debug "Index: " +Str(ListIndex(test()))
Debug "Wert: " +Str(test())
Debug "Index: " +Str(ListIndex(test()))
Debug "Wert: " +Str(test())
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Sowas finde ich ja schrecklich. Wenn grundlegende Sachen geändert werden und sie dann noch nicht einmal richtig funktionieren. Kann man nicht einfach wieder die alte LinkedList-Version einbauen. Wenn jemand schnelle LinkedLists haben will, dann soll er sie selbst auch so programmieren. :roll:
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

Fred habe ich gestern informiert. Mal sehen, was er dazu sagt.... :roll:

Bug beim Rückgabewert von NextElement() ist ja bereits bestätigt. Aber er wird sich die ganze Lib nochmal anschauen müssen.
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

Jupp, ich hab im englischen auch noch einen Bug gepostet welcher bei Linked Lists auftritt. http://purebasic.myforums.net/viewtopic.php?t=13052
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Beitrag von GPI »

p.s.: Eilt. Danke.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

Habe Rückmeldung von Fred: er hat sich's angeschaut und wird Bug(s) schnellstens beheben. :)
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

Gut, dann hoffe ich auf ein schnelles Hotfix. Ist ein wenig verunsichernd wenn man nicht weiß, ob das Programm nicht läuft, weil man selbst einen Fehler gemacht hat oder weil die Lib einen Bug hat. :(
Aber bei diesem Bug bin ich optimistisch dass er schnell gelöst wird, ist ja eine recht gravierende Sache, als wenn Structuren buggy wären oder so. (will garnicht dran denken :shock: )
Antworten