Pixelflinger: Fix issue of pointers being stored in ints

Pixelflinger's code makes assumptions, at certain places,
that pointers can be stored as ints. This patch makes use
of uintptr_t wherever pointers are stored as int or cast
to int.

Change-Id: Ie76f425cbc82ac038a747f77a95bd31774f4a8e8
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
This commit is contained in:
Ashok Bhat 2013-11-14 11:13:41 +00:00 committed by David Butcher
parent 8779c4eab4
commit d10afb1748
4 changed files with 8 additions and 8 deletions

View file

@ -121,7 +121,7 @@ template<bool> struct CTA;
template<> struct CTA<true> { };
#define GGL_CONTEXT(con, c) context_t *con = static_cast<context_t *>(c)
#define GGL_OFFSETOF(field) int(&(((context_t*)0)->field))
#define GGL_OFFSETOF(field) uintptr_t(&(((context_t*)0)->field))
#define GGL_INIT_PROC(p, f) p.f = ggl_ ## f;
#define GGL_BETWEEN(x, L, H) (uint32_t((x)-(L)) <= ((H)-(L)))
@ -480,7 +480,7 @@ struct generated_tex_vars_t {
uint32_t width;
uint32_t height;
uint32_t stride;
int32_t data;
uintptr_t data;
int32_t dsdx;
int32_t dtdx;
int32_t spill[2];

View file

@ -93,7 +93,7 @@ void ggl_pick_texture(context_t* c)
gen.width = s.width;
gen.height = s.height;
gen.stride = s.stride;
gen.data = int32_t(s.data);
gen.data = uintptr_t(s.data);
}
}

View file

@ -99,8 +99,8 @@ void ARMAssembler::disassemble(const char* name)
if (comment >= 0) {
printf("; %s\n", mComments.valueAt(comment));
}
printf("%08x: %08x ", int(i), int(i[0]));
::disassemble((u_int)i);
printf("%08x: %08x ", uintptr_t(i), int(i[0]));
::disassemble((uintptr_t)i);
i++;
}
}
@ -186,7 +186,7 @@ int ARMAssembler::generate(const char* name)
#if defined(WITH_LIB_HARDWARE)
if (__builtin_expect(mQemuTracing, 0)) {
int err = qemu_add_mapping(int(base()), name);
int err = qemu_add_mapping(uintptr_t(base()), name);
mQemuTracing = (err >= 0);
}
#endif

View file

@ -1717,7 +1717,7 @@ void init_y(context_t* c, int32_t ys)
gen.width = t.surface.width;
gen.height = t.surface.height;
gen.stride = t.surface.stride;
gen.data = int32_t(t.surface.data);
gen.data = uintptr_t(t.surface.data);
gen.dsdx = ti.dsdx;
gen.dtdx = ti.dtdx;
}
@ -2125,7 +2125,7 @@ void scanline_t32cb16(context_t* c)
int sR, sG, sB;
uint32_t s, d;
if (ct==1 || uint32_t(dst)&2) {
if (ct==1 || uintptr_t(dst)&2) {
last_one:
s = GGL_RGBA_TO_HOST( *src++ );
*dst++ = convertAbgr8888ToRgb565(s);