summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2004-02-15 18:07:26 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2004-02-15 18:07:26 +0000
commitdc6c4e5caef9fc1dd19c3584272902bb793d0b3b (patch)
tree93895b19e9749dfb57d2a1fe5fc56a5c1d9072d6
parent518a6dd47b9ea61875a29371189bc3579efca199 (diff)
downloadnetsurf-dc6c4e5caef9fc1dd19c3584272902bb793d0b3b.tar.gz
netsurf-dc6c4e5caef9fc1dd19c3584272902bb793d0b3b.tar.bz2
[project @ 2004-02-15 18:07:26 by jmb]
Use proper offsets instead of hard-coded nastiness svn path=/import/netsurf/; revision=546
-rw-r--r--riscos/save_draw.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/riscos/save_draw.c b/riscos/save_draw.c
index d20450cde..c6df48093 100644
--- a/riscos/save_draw.c
+++ b/riscos/save_draw.c
@@ -282,23 +282,24 @@ void add_graphic(struct content *content, struct box *box,
drawfile_sprite *ds;
long sprite_length = 0;
+ /* cast-tastic... */
switch (content->type) {
case CONTENT_JPEG:
if (content->data.jpeg.use_module) {
sprite_length = -1;
}
else {
- sprite_length = content->data.jpeg.sprite_area->size;
+ sprite_length = ((osspriteop_header*)((char*)content->data.jpeg.sprite_area+content->data.jpeg.sprite_area->first))->size;
}
break;
case CONTENT_PNG:
- sprite_length = content->data.png.sprite_area->size;
+ sprite_length = ((osspriteop_header*)((char*)content->data.png.sprite_area+content->data.png.sprite_area->first))->size;
break;
case CONTENT_GIF:
- sprite_length = content->data.gif.sprite_area->size;
+ sprite_length = ((osspriteop_header*)((char*)content->data.gif.sprite_area+content->data.gif.sprite_area->first))->size;
break;
case CONTENT_SPRITE:
- sprite_length = content->data.sprite.length-16;
+ sprite_length = ((osspriteop_header*)((char*)content->data.sprite.data+(((osspriteop_area*)content->data.sprite.data)->first)))->size;
break;
default:
break;
@@ -320,19 +321,19 @@ void add_graphic(struct content *content, struct box *box,
switch (content->type) {
case CONTENT_JPEG:
- memcpy((char*)ds+16, content->data.jpeg.sprite_area+1,
+ memcpy((char*)ds+16, (char*)content->data.jpeg.sprite_area+content->data.jpeg.sprite_area->first,
(unsigned)sprite_length);
break;
case CONTENT_PNG:
- memcpy((char*)ds+16, content->data.png.sprite_area+1,
+ memcpy((char*)ds+16, (char*)content->data.png.sprite_area+content->data.png.sprite_area->first,
(unsigned)sprite_length);
break;
case CONTENT_GIF:
- memcpy((char*)ds+16, content->data.gif.sprite_area+1,
+ memcpy((char*)ds+16, (char*)content->data.gif.sprite_area+content->data.gif.sprite_area->first,
(unsigned)sprite_length);
break;
case CONTENT_SPRITE:
- memcpy((char*)ds+16, (char*)content->data.sprite.data+16,
+ memcpy((char*)ds+16, (char*)content->data.sprite.data+((osspriteop_area*)content->data.sprite.data)->first,
(unsigned)sprite_length);
break;
default: