Bug: IMA in ClearList() nach AddElement() in Prozedur

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

PMV hat geschrieben:Das ist der Code, den ich dir grad per PN geschickt hatte ... mit
auskommentieren PreviousElement(). Aber ich versteh nicht, was du mir
MFG PMV
Nein ist es nicht...
Bei mir ist auch die ClearList() dabei.
Führe den Code einfach mal aus...und fange an nachzudenken.
Die OnlineHilfe zu PreviousElement() wird Dir sicher helfen.
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Die eine Zeile mehr oder weniger ... sagt immer noch nichts aus /:->

Ich hab mir das ganze angeschaut, und nun?
8 Byte nach dem Pointer die die LinkedList-Befehle ausspucken kommen
die Daten. Der @-Operator gibt diesen Wert direkt aus, also brauch ich
nix rechnen. Bei vergleich der @List() und AddElement(List())
rückgabewerte wird das deutlich :D .
Die Struktur der Elemente will ich auch nicht verbiegen.
Die Pointer der Linkedlist elemente verbiege ich auch nicht, ich lese sie
nur aus um dann zum entsprechenden Element zu springen.

Also ich kann dir immer noch nicht folgen :cry:

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

PMV hat geschrieben:Also ich kann dir immer noch nicht folgen :cry:
Du siehst den Wald vor lauter Bäume nicht.

Hier also die Auflösung:

Führe mal diesen Code aus...und sieh die die Ergebnisse von PreviousElements an (Vor allem den '0' Value)

Code: Alles auswählen

Structure Struc 
  StructureUnion 
    Value.s  ;mit einem anderen Datentyp kein problem 
    *Pointer 
  EndStructureUnion 
EndStructure 
Global NewList List.Struc() 

Structure Struc2 
  *Pointer 
EndStructure 
Global Variable.Struc2 

For i = 0 To 1 ;muss mindestens 2 mal durchlaufen werden 
  Debug "AddElements: "
  Debug AddElement(List()) ;es müssen min. 2 Elemente erstellt werden 
  Debug AddElement(List()) 
  Variable\Pointer = @List() ;mit einfacher Pointervariable kein problem o_O 
  Debug "PreviousElements: "
  Debug PreviousElement(List()) ;es muss mindestens 2 Felder zurück gehen O_o 
  Debug PreviousElement(List())  ;FirstElement(List()) bringt auch ein IMA 
  List()\Pointer = Variable\Pointer 
  ChangeCurrentElement(List(), Variable\Pointer) 
  Debug "" 
Next

ClearList(List())
So und nun kommentiere eines der beiden PreviousElement() aus...
...verstehst Du es nun?
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

nein :oops: :cry:

Was hat das mit dem IMA in Clearlist() zu tun?
Warum darf ich nicht bis zum erste Element der Liste laufen?
Wenn PreviousElement() Null zurück gibt, heißt das nur, das es kein
weiteres Element davor gibt. Das aktuelle Element ist demnach das erste.

Was hat das ganze aber nun mit dem IMA zu tun? :?

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

Ich habe einen BUG geschrieben...
...mal sehen was Fred sagt ;-)
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

/:-> ... *kopfkratz*
*michleichtverarschtfühl*
:freak:
Fühl dich schuldig, wegen dir hab ich jetzt Kopfschmerzen :lamer:
:lol: /:->

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

PMV hat geschrieben:/:-> ... *kopfkratz*
*michleichtverarschtfühl*
:freak:
Fühl dich schuldig, wegen dir hab ich jetzt Kopfschmerzen :lamer:
:lol: /:->

MFG PMV
Ich weiss: denken tut weh ;-)
Aber ernsthaft...mein Code denn ich @Fred gepostet habe ist leicht abgewandelt...deswegen die BugMeldung (Und nur deswegen!).
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Und was ist da deiner Meinung nach anders?
(ich hab den Code schon vor meinem letzten Post gesehen)

Egal ob PreviousElement() = 0 ist oder nicht, es ist trotzdem ein
Element aktiv. (im Falle von 0 halt das Erste)
Somit hat deine zusätzliche If-Abfrage keinen Wert.

In meinem Beispiel mache ich folgendes:
1. Element erstellen
2. Element erstellen
Pointer des 2. Elements speichern
gehe 1 Element zurück (1. Element aktiv)
gehe 1 Element zurück (existiert nicht, weiterhin 1. Element aktiv)
gespeicherten Pointer in das Strukturfeld des aktiven Elements schreiben
springe zum Element des gespeicherten Pointers (2. Element aktiv)
3. Element erstellen
4. Element erstellen
Pointer des 4. Elements speichern
gehe 1 Element zurück (3. Element aktiv)
gehe 1 Element zurück (2. Element aktiv)
gespeicheten Pointer in das Strukturfeld des aktiven Elements schreiben
springe zum Element des gepsiecherten Pointers (4. Element aktiv)

Wo ist da nun der Wald den ich nicht sehe? :|

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
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 »

Da auch diverse Quellen mit einer Doku zum Union Schlüsselwort immer Beispiele mit verschiedenen Typen ausweisen, habe ich jetzt einen entsprechenden Hinweis auch in die PB-Hilfe mit aufgenommen.

Eine Compiler-Warnung sollte vielleicht aber trotzdem noch sein.
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

Andre hat geschrieben:Eine Compiler-Warnung sollte vielleicht aber trotzdem noch sein.
Auf jeden Fall!
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Antworten