amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > DeleteLayer [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

11.02.2007, 19:03 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Hallo !

Was mache ich hier falsch?

code:
; allocieren ...
bmap_0 = AllocBitMap_(scr_width,scr_height,d,#BMF_DISPLAYABLE,scr_bmap)
layerinfo_0  = NewLayerInfo_()
If layerinfo_0  Then layer_0  = CreateUpfrontHookLayer_ (layerinfo_0 ,bmap_0 ,0,0,scr_width-1,scr_height-1,0,#LAYERS_NOBACKFILL,0)
If layer_0  Then rp_0  = layer_0rp

...

; frei geben ...
If layer_0      Then DeleteLayer_        0,layer_0 : layer_0       = 0
If layerinfo_0  Then DisposeLayerInfo_ layerinfo_0 : layerinfo_0   = 0
If rp_0         Then                                  rp_0          = 0
If bmap_0       Then FreeBitMap_ bmap_0 : bmap_0 = 0


Ich bekomme "corrupted memory list" Guru bei DeleteLayer, bzw. nicht direkt, sondern etwas später, wenn man z.B. Scout öffnet und schliesst.
DeleteLayer ist aber definitiv schuld. Wenn ich es ausklammere, bekomme ich zwar evtl. ein memory leak, aber keinen Guru.


--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de


[ - Antworten - Zitieren - Direktlink - ]

12.02.2007, 10:10 Uhr

thomas
Posts: 7717
Nutzer

Laß das Programm mal mit Mungwall laufen, das sagt dir dann, wo du über Allokationsgrenzen hinausgeschrieben hast.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

12.02.2007, 18:39 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Ich hatte die Bitmap versehentlich schon vorher freigegeben. (weil sie die Bitmaps eines Screens war). bmap_0 war dann zwar schon auf 0, und ich habe die Bitmap nicht doppelt freigegeben, aber der Layer mag es beim Löschen wohl nicht, wenn die Bitmap schon weg ist.

Danke!
--
Thilo Köhler, Author von:
HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker
Homepage: http://www.hd-rec.de


[ - Antworten - Zitieren - Direktlink - ]

12.02.2007, 19:29 Uhr

Georg
Posts: 107
Nutzer
Zitat:
Original von Der_Wanderer:

aber der Layer mag es beim Löschen wohl nicht, wenn die Bitmap schon weg ist.


Ich würd' sagen es ist der LayerInfo BackFill Hook, der das nicht mag. Wenn durch Layer Operationen (Verschieben, Schließen, ...) Teile der BitMap sichtbar werden in denen kein anderer Layer ist, werden diese mit dem LayerInfo BackFill Hook gefüllt. Wenn die BitMap dann nicht mehr existiert, geht das natürlich schief, außer es wurde LAYERS_NOBACKFILL als Hook installiert.





[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > DeleteLayer [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.