-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/4363/
-----------------------------------------------------------

(Updated 2010-06-21 14:52:36.388199)


Review request for Plasma.


Changes
-------

The resubmitted diff actually subtly changed the semantics of the game for 
cells which were on the right or left borders of the game. My initial idea that 
the odd loop bounds were to prevent odd behavior resulting from the (only 
actual) bug was incorrect. The loop bounds were meant to keep a border of 0'ed 
cells around the (active) game board. This allowed the calculation of neighbors 
to be very succinct.

With this updated patch, there would no longer be a padded border of 0's around 
the active game board. This should make the loop bounds simpler to read and 
understand, and will prevent the implicit display of an extra cell's width and 
height border around the game board. It does so at the cost of a succinct 
neighbors() function.

If it is better to stick with old approach, I would like to update the display 
code to avoid displaying the 0'ed border of the game board (any border around 
the game board will be explicit.)

At any rate, I believe the original bug should be fixed (displaying the state 
of memory one step outside of the cells array.) That fix is the smallest part 
of the current patch.
-Obby, 21 June 2010


Summary
-------

Note: This review request replaces former request 
http://reviewboard.kde.org/r/4361/ which was discarded after several attempts 
to upload an updated diff failed. I apologize for the extra mail. The original 
fix contained another bug which would cause a crash if the game board was not 
symmetrical.

This patch fixes an off-by-one error which led to accessing memory just outside 
of the cells array. It also kept the first character in the cells array from 
ever being displayed on the board properly, and a bunch of crazy math to keep 
the rules of the game intact. (The last cell displayed was reflecting the state 
of memory outside of the cells array.)


Diffs (updated)
-----

  /trunk/KDE/kdeplasma-addons/applets/life/life.h 1138875 
  /trunk/KDE/kdeplasma-addons/applets/life/life.cpp 1138875 

Diff: http://reviewboard.kde.org/r/4363/diff


Testing
-------

Testing Done:
Aside from the initial test cases which were used to confirm the bug (hard 
coding one char in the cells array to always be 1 and moving it around to find 
the bounds of the display,) I also generated a few other board states manually 
using examples found here:
http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life

"Blinker" and "Toad" were two that were used to test.

Note: The bug in the original fix (diff in previous review request mentioned 
above) led to a crash when the gameboard was resized to be non-square. After 
fixing that bug, I tried several random board sizes, and they all worked.


Thanks,

obby

_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel

Reply via email to