[4.20B2] FreeGadget [Bug] [ ]

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

[4.20B2] FreeGadget [Bug] [ ]

Beitrag von RSBasic »

Hallo,

mir ist was bei FreeGadget aufgefallen, was sehr eigenartig ist.
Okey, ich kann es ignorieren, aber es geht um Prinzip.
Folgendes Beispiel:

Code: Alles auswählen

If OpenWindow(0,0,0,500,500,"Test",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  If CreateGadgetList(WindowID(0))
  EndIf
  For a=1 To 50
    FreeGadget(a)
  Next
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Bei GadgetID 0-49 sagt er garnix, dass kein Gadget initialisiert wurde, aber ab GadgetID 50+ meckert der Debugger :?
Wieso davor nicht?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Ist jetzt nicht dein ernst, oder?
PMTheQuick
Beiträge: 630
Registriert: 05.05.2005 19:06

Beitrag von PMTheQuick »

edel hat geschrieben:Ist jetzt nicht dein ernst, oder?
Nach nem Gesprächchen in Dingelings Chat würde ich jetzt mal sagen, es ist sein Ernst :D (Er hat mirs auch schon gesagt :D )

Gruss
PMTheQuick ;)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

edel hat geschrieben:Ist jetzt nicht dein ernst, oder?
:?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Wenn die interne GadgetListe erstellt wird, wird gleich fuer 50 Gadgets
Platz geschaffen. Kommt man ueber 50 werden es 100 usw...
Baut man nun ein Freegadget(0) ein, greift die interne Funktion
auf den Speicher zu (der allerdings leer ist und die Funktion bricht
selber ab). Setzt man aber nun statt der 0 eine 50 ein, ohne dafuer
ueberhaupt ein Gadget erstellt zu haben, greift die Funktion auf
einen Speicher zu, der nicht alloziert wurde und schmiert somit ab.

Da der Code oben aber Bloedsinn ist, hat das hier ja eigentlich nichts
zu suchen.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

edel hat geschrieben:Wenn die interne GadgetListe erstellt wird, wird gleich fuer 50 Gadgets Platz geschaffen. Kommt man ueber 50 werden es 100 usw... Baut man nun ein Freegadget(0) ein, greift die interne Funktion auf den Speicher zu (der allerdings leer ist und die Funktion bricht selber ab). Setzt man aber nun statt der 0 eine 50 ein, ohne dafuer ueberhaupt ein Gadget erstellt zu haben, greift die Funktion auf einen Speicher zu, der nicht alloziert wurde und schmiert somit ab.
Das habe ich nicht gewusst.

\\Edit
Trotzdem sollte der Debugger auch die interne Funktionen kontrollieren oder?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Antworten