Derelict SFML destructor crashes
Jeremy DeHaan
dehaan.jeremiah at gmail.com
Mon Dec 17 02:39:54 PST 2012
Thanks for all the info, Mike. I come from a C# background, so I
have pretty much 0 experience when it comes to handling memory
myself(let alone working with a binding to another language) and
I haven't read my D book as much as I would like.
> I'm not quite sure what you are referring to when you say, "I
> tested this." Which? Freeing the image in a destructor?
I tried putting destroy in the destructor like the code I wrote.
Like I said, it gave me no memory errors, but I don't actually
know if it even does anything. I honestly think that it is weird
to not be able to rely on destructors like this. To me, it makes
sense that the destructor would be a part of the garbage
collection, but again I don't have any sort of experience with
memory management. I find it kind of silly to have something like
a destructor built into a language, but it not being reliable and
more or less something to be completely ignored altogether. I do
understand that in most cases this can be so, as the GC will free
up the memory itself, but in some cases it could be useful to
know your destructor will free up the resources the GC can't.
> The scope(exit) in the main method ensures that this
> termination chain is run every time the app exits regardless of
> the reason
This is good to know. I read about this, but haven't used it yet.
Wouldn't the destructors get called at this point?
Also, what about something like this?
void main(string[] args)
{
{
init();
gameLoop();
}<-Wouldn't the destructors get called here? Or would the GC
run first?
}<-And what would happen here? Would GC be run again after the
scope is left?
I am just trying to understand the language better. So far it
seems that the only way to prevent memory leaks when memory is
being allocated outside of D is to manually delete those objects
yourself and to not rely on the destructors. I will make sure
this happens in the future!
Sorry if I say silly things. I am but a young programmer trying
to gain knowledge!
More information about the Digitalmars-d-learn
mailing list