[opensource-dev] Review Request: VWR-24321: Validate textures starting with 00 too.

Cron Stardust kf6kjg at gmail.com
Tue Jan 18 20:51:36 PST 2011



> On Jan. 18, 2011, 12:09 p.m., Merov Linden wrote:
> > indra/newview/lltexturecache.cpp, line 1595
> > <http://codereview.secondlife.com/r/90/diff/1/?file=413#file413line1595>
> >
> >     validate_idx being used in a test later, it's not just for (validate_idx == 0) that the behavior will be different. I need to understand better what that idx is all about or you need to give a bit more explanation before I approve this diff.
> 
> Aleric Inglewood wrote:
>     The debug setting CacheValidateCounter is set to 'next_id', which makes clear what it's meaning is: namely, the id that we will check next time. next_idx is a very local variable that is simply set to the value of CacheValidateCounter plus 1, and then that value is stored to CacheValidateCounter again for next time.
>     
>     validate_idx is the ID that is actually being tested this time. Hence, it should be the value of CacheValidateCounter before we increase that.
>     
>     Obviously, those ID's should be in the range 0...255, which is garanteed by doing a modulo 256 on next_id before writing it to CacheValidateCounter.
>     
>     The old code also increases validate_idx *before* it is used. That means that it will be in the range 1...256, and 0 is never tested (note that validate_idx is just increased, there is no modulo applied, so it's obvious that it shouldn't be increased). Even the wording ("next"_id) suggests that validate_idx should just be the value of CacheValidateCounter, which is the value of the previous next_id...
>     
>     So, after this patch, we get to the following code with validate_idx in the range 0...255, as it should be.
>

Just double checking, as switching from pre-increment to addition can change behavior: In both cases next_idx will have the same value after this line is executed, however validate_idx will not.

Prediff start state: validate_idx == 0;
Prediff stop state: validate_idx == 1; next_idx == 1;

Postdiff start state: validate_idx == 0;
Postdiff stop state: validate_idx == 0; next_idx == 1;

And another round over at the other end:

Prediff start state: validate_idx == 255;
Prediff stop state: validate_idx == 256; next_idx == 0;

Postdiff start state: validate_idx == 255;
Postdiff stop state: validate_idx == 255; next_idx == 0;

So, yes, validate_idx will only have a 255 in it in this last case, however the over-all behavior has changed: validate_idx isn't being incremented at all in this line.

WARNING: I have NOT looked at the rest of the diff, only at this one line.  Nor do I know if validate_idx should or shouldn't be incremented by this line of code.


- Cron


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://codereview.secondlife.com/r/90/#review191
-----------------------------------------------------------


On Jan. 14, 2011, 1:02 p.m., Aleric Inglewood wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://codereview.secondlife.com/r/90/
> -----------------------------------------------------------
> 
> (Updated Jan. 14, 2011, 1:02 p.m.)
> 
> 
> Review request for Viewer.
> 
> 
> Summary
> -------
> 
> Trivial patch, just removes stupidity.
> 
> 
> This addresses bug VWR-24321.
>     http://jira.secondlife.com/browse/VWR-24321
> 
> 
> Diffs
> -----
> 
>   doc/contributions.txt b0bd26c5638a 
>   indra/newview/lltexturecache.cpp b0bd26c5638a 
> 
> Diff: http://codereview.secondlife.com/r/90/diff
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Aleric
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.secondlife.com/pipermail/opensource-dev/attachments/20110119/c5ce404e/attachment-0001.htm 


More information about the opensource-dev mailing list