AArch64: Correction of struct surface_t

The struct in the union with GGLSurface in struct surface_t assumed
that the reserved field, which corresponds to the GGLsizei version
field in the GGLSurface structure (where GGLsizei is define as being
ssize_t in the system/core/include/pixelflinger/pixelflinger.h header
file) is uint32_t. That is appropriate to the 32-bit system but is
not appropriate to the 64-bit system, where ssize_t is 64-bits rather
than 32-bits.

The 32-bit system has also been tested and has no regression
because of this change.

Change-Id: I5cd84fd4a18fa0e63e27975f7b3d3e95b99cea58
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
This commit is contained in:
Marcus Oakland 2013-06-05 16:32:29 +01:00 committed by David Butcher
parent 6fec3a2304
commit 6053564160

View file

@ -340,16 +340,18 @@ struct pixel_t {
struct surface_t {
union {
GGLSurface s;
GGLSurface s;
// Keep the following struct field types in line with the corresponding
// GGLSurface fields to avoid mismatches leading to errors.
struct {
uint32_t reserved;
uint32_t width;
uint32_t height;
int32_t stride;
uint8_t* data;
uint8_t format;
uint8_t dirty;
uint8_t pad[2];
GGLsizei reserved;
GGLuint width;
GGLuint height;
GGLint stride;
GGLubyte* data;
GGLubyte format;
GGLubyte dirty;
GGLubyte pad[2];
};
};
void (*read) (const surface_t* s, context_t* c,