diff options
author | 2009-07-15 13:11:01 +0000 | |
---|---|---|
committer | 2009-07-15 13:11:01 +0000 | |
commit | 74410eff4a258344401844667ab63c8ed420fcbb (patch) | |
tree | 24a646879ee71d38090b9154b5e448d4608de9c6 /games-arcade/cdogs-sdl/files | |
parent | stable x86, bug 247622 (diff) | |
download | gentoo-2-74410eff4a258344401844667ab63c8ed420fcbb.tar.gz gentoo-2-74410eff4a258344401844667ab63c8ed420fcbb.tar.bz2 gentoo-2-74410eff4a258344401844667ab63c8ed420fcbb.zip |
Fix crash on amd64, bug #270899
(Portage version: 2.2_rc33/cvs/Linux x86_64)
Diffstat (limited to 'games-arcade/cdogs-sdl/files')
-rw-r--r-- | games-arcade/cdogs-sdl/files/cdogs-sdl-0.4-64bit.patch | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/games-arcade/cdogs-sdl/files/cdogs-sdl-0.4-64bit.patch b/games-arcade/cdogs-sdl/files/cdogs-sdl-0.4-64bit.patch new file mode 100644 index 000000000000..bcab13c0ebfd --- /dev/null +++ b/games-arcade/cdogs-sdl/files/cdogs-sdl-0.4-64bit.patch @@ -0,0 +1,48 @@ +--- src/grafx.c ++++ src/grafx.c +@@ -216,12 +216,6 @@ + SDL_VideoQuit(); + } + +-typedef struct _Pic { +- short int w; +- short int h; +- char *data; +-} Pic; +- + int ReadPics(const char *filename, void **pics, int maxPics, + color * palette) + { +@@ -241,12 +235,12 @@ + fread(&size, sizeof(size), 1, f); + swap16(&size); + if (size) { +- Pic *p = sys_mem_alloc(size); ++ unsigned char *p = sys_mem_alloc(size); + +- f_read16(f, &p->w, 2); +- f_read16(f, &p->h, 2); ++ f_read16(f, &p[0], 2); // w ++ f_read16(f, &p[2], 2); // h + +- f_read(f, &p->data, size - 4); ++ f_read(f, &p[4], size - 4); // data + + pics[i] = p; + +@@ -278,11 +272,11 @@ + fread(&size, sizeof(size), 1, f); + swap16(&size); + if (size) { +- Pic *p = sys_mem_alloc(size); ++ unsigned char *p = sys_mem_alloc(size); + +- f_read16(f, &p->w, 2); +- f_read16(f, &p->h, 2); +- f_read(f, &p->data, size - 4); ++ f_read16(f, &p[0], 2); // w ++ f_read16(f, &p[2], 2); // h ++ f_read(f, &p[4], size - 4); // data + + pics[i] = p; + |