bonjour,

Je viens de modifier 2 petites choses dans un programme et voilà qui plante au bout de 3 jours.
Il y a un thread qui fait des opérations sur des bufferedImage.
J'avais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
public BufferedImage buffer1 = null;
public BufferedImage buffer2 = null;
public BufferedImage buffer3 = null;
 
public void run()
{
        while(....)
        {
              buffer1 = capt.newBuffer();
              buffer2 = capt.newBuffer();
              buffer3 = capt.newBuffer();
        }
}
pas de problème

puis j'ai fait cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
public BufferedImage buffer1 = null;
public BufferedImage buffer2 = null;
public BufferedImage buffer3 = null;
 
public void run()
{
        while(....)
        {
              buffer1 = newBufferedImage(tab1,w,h);
              buffer2 = newBufferedImage(tab2,w,h);
              buffer3 = newBufferedImage(tab3,w,h);
        }
 public BufferedImage newBufferedImage(int[] tab,w,h)
    {
        BufferedImage bufIm = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB); 
        bufIm.setRGB(0,0,w,h,tab,0,w);
        return bufIm;
    }
}
Est ce que ma fonction newBufferedImage peut provoquer un outofmemory ?
Est ce qu'il faut mettre buffer1 = null;buffer2 = null;buffer3 = null à chaque passage pour libérer la mémoire ? Perso, je pensais que dans mon cas ça écrasait.

Merci d'avance de votre aide