gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] [bug #32521] SIGKILL after ever-growing resource usage


From: Sandro Santilli
Subject: [Gnash-commit] [bug #32521] SIGKILL after ever-growing resource usage
Date: Sun, 13 Mar 2011 19:42:08 +0000
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Ubuntu/10.04 Chromium/9.0.597.107 Chrome/9.0.597.107 Safari/534.13

Follow-up Comment #5, bug #32521 (project gnash):

The loop seems to be this one (not confirmed):

do {                  /* 2nd type */                                    
  R3 = '0x'+R6.getPixel(random(R7),random(R8)).toString(16);            
  if( (R3!='0xff0000') ) {                                              
    R5 = this.darks.length;                                             
    while( (--R5>0) ) {                                                 
      if( (Number(R3)==this.darks[R5]) ) {                             
        vectorMC.colorID = R5;                                         
        R4 = false;                                                    
      } else {                                                         
      }                                                                
    }                                                                  
  }                                                                    
} while( R4);

Benjamin said:

Logically it depends on a pixel in a BitmapData not being red, and then       
 
having its value contained in the array this.darks.                           
 
                                                                              
 
So the possibilities seem to be:                                              
 
                                                                              
 
1. Number conversion is not working.                                          
 
2. String conversion is not working (toString(16)).                           
 
3. this.darks contains incorrect values.                                      
 
4. getPixel() is returning wrong values.                                      
 
5. The BitmapData contains data that isn't expected (this is indeed           
 
likely if it was produced using loadBitmap() or draw(), as Gnash's            
 
values often differ slightly) and the code relies on it having a              
 
particular value. It could also contain no data.                              
 
                                                                              
 
I don't consider the first two to be likely, so it would be useful to         
 
know where the the 'darks' array comes from, and how the BitmapData is        
 
produced.                                        

R6 = new                                                                      
 
flash.display.BitmapData(vectorMC._width,vectorMC._height,false,16711680);    
 
R12 = new flash.geom.Transform(vectorMC);                                     
 
R9 = new flash.geom.Matrix();                                                 
 
R10 = vectorMC.getBounds();                                                   
 
R9.translate((0-R10.xMin),(0-R10.yMin));                                      
 
R6.draw(vectorMC,R9);                                                         

                                                                              

So it does use draw(), and darks is a global array of fixed values. This      

may make it impossible to fix the infinite loop without getting agg to        

render exactly like the pp, but it would be good to verify that               

getPixel() is returning slightly different values from those expected.        

                                                                     

    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?32521>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]