Garbage Collector : Ignoring a reference

Begah via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Apr 26 02:07:59 PDT 2016


I am trying to create an asset manager for my textures. I had the 
idea ( it may be a wrong idea ) to create a hashmap of my 
textures with a string as the key. When the program request a 
texture, it firts check if it is in the hashmap and then returns 
if it is :

Texture[string] textures;

Texture loadTexture(string filename) {
   if(filename in textures)
     return textures[filename]
   else
     // Load image and put it in hashmap
}

Warning : I haven't tested if it actually doesn't work, but 
thinking about it, i think it should not.
My problem is that i return a reference of the texture to the 
program, but i keep one to myself and i want to free the texture 
if my program isn't using it anymore ( no more reference to it ). 
The problem i see, is that i will always have atleast one 
reference to the texture in my hashmap, but i want the garbage 
collector to ignore that reference and to free the texture if 
there are no more references anywhere in my program ( except in 
the hashmap ).

How could i tell the garbage collector to ignore the reference in 
the hashmap and to free it if there isn't any other reference 
that in my hashmap?


More information about the Digitalmars-d-learn mailing list