surface: Fix SDL_Surface struct parsing.
authorDavid Thompson <dthompson2@worcester.edu>
Fri, 1 Jan 2016 16:06:29 +0000 (11:06 -0500)
committerDavid Thompson <dthompson2@worcester.edu>
Fri, 1 Jan 2016 16:06:29 +0000 (11:06 -0500)
commit29228696345c2d19be81daebea4da5170f35694e
treea1bde73df1d55f052c75b4313eb940f06a1fb611
parent048f80ddb5c6b03b87bba199a99a6f22d911bfff
surface: Fix SDL_Surface struct parsing.

The code worked fine on Guile 2.0.11, but Guile master revealed how bad
it was to use 'sizeof' to calculate byte offsets into structs due to the
padding calculations it does.  On Guile master, the offset for surface
height and pitch were the same, and that lead to bad news when trying to
use that incorrectly parsed data to inspect the pixel buffer.

* sdl2/surface.scm (%width-offset, %height-offset, %pitch-offset)
(%pixels-offset): Delete.
(%surface-types): New variable.
(surface-parse-match): New syntax.
(surface-width, surface-height, surface-pitch, surface-pixels): Use new
struct parsing method.
* .dirlocals.el: Add new indenting rule.
.dir-locals.el
sdl2/surface.scm