Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 60535641 authored by Marcus Oakland's avatar Marcus Oakland Committed by David Butcher
Browse files

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: default avatarMarcus Oakland <marcus.oakland@arm.com>
parent 6fec3a23
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -341,15 +341,17 @@ struct pixel_t {
struct surface_t {
    union {
        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,