From 35bc2ccbb89a6b499e0e3b6f7095afea214f0c59 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Sun, 5 May 2019 22:46:40 +0100 Subject: change content get_source_data interfaces to return uint8_t and size_t previously these interfaces returned char * and unsigned int which was undesirable. --- frontends/amiga/arexx.c | 8 ++-- frontends/amiga/clipboard.c | 21 ++++++---- frontends/amiga/dt_anim.c | 6 +-- frontends/amiga/dt_picture.c | 12 +++--- frontends/amiga/dt_sound.c | 6 +-- frontends/amiga/file.c | 21 ++++++---- frontends/amiga/iff_dr2d.c | 21 ++++++---- frontends/gtk/viewsource.c | 9 ++-- frontends/riscos/content-handlers/artworks.c | 32 +++++++-------- frontends/riscos/content-handlers/draw.c | 8 ++-- frontends/riscos/content-handlers/sprite.c | 7 ++-- frontends/riscos/gui.c | 4 +- frontends/riscos/save.c | 8 ++-- frontends/riscos/theme_install.c | 61 ++++++++++++++-------------- 14 files changed, 124 insertions(+), 100 deletions(-) (limited to 'frontends') diff --git a/frontends/amiga/arexx.c b/frontends/amiga/arexx.c index acb0348fd..5be8a4f2e 100644 --- a/frontends/amiga/arexx.c +++ b/frontends/amiga/arexx.c @@ -346,8 +346,6 @@ RXHOOKF(rx_open) RXHOOKF(rx_save) { BPTR fh = 0; - ULONG source_size; - const char *source_data; struct gui_window *gw = cur_gw; cmd->ac_RC = 0; @@ -361,9 +359,13 @@ RXHOOKF(rx_save) if((fh = FOpen((char *)cmd->ac_ArgList[0], MODE_NEWFILE, 0))) { + const uint8_t *source_data; + size_t source_size; struct hlcache_handle *h = browser_window_get_content(gw->bw); - if((source_data = content_get_source_data(h, &source_size))) + source_data = content_get_source_data(h, &source_size); + if (source_data != NULL) { FWrite(fh, source_data, 1, source_size); + } FClose(fh); SetComment((char *)cmd->ac_ArgList[0], nsurl_access(browser_window_access_url(gw->bw))); diff --git a/frontends/amiga/clipboard.c b/frontends/amiga/clipboard.c index 27b801540..79dda3901 100644 --- a/frontends/amiga/clipboard.c +++ b/frontends/amiga/clipboard.c @@ -349,15 +349,22 @@ bool ami_easy_clipboard_bitmap(struct bitmap *bitmap) #ifdef WITH_NS_SVG bool ami_easy_clipboard_svg(struct hlcache_handle *c) { - const char *source_data; - ULONG source_size; + const uint8_t *source_data; + size_t source_size; - if(ami_mime_compare(c, "svg") == false) return false; - if((source_data = content_get_source_data(c, &source_size)) == NULL) return false; + if (ami_mime_compare(c, "svg") == false) { + return false; + } + source_data = content_get_source_data(c, &source_size); + if (source_data == NULL) { + return false; + } - if(!(OpenIFF(iffh,IFFF_WRITE))) - { - ami_svg_to_dr2d(iffh, source_data, source_size, nsurl_access(hlcache_handle_get_url(c))); + if (!(OpenIFF(iffh,IFFF_WRITE))) { + ami_svg_to_dr2d(iffh, + (const char *)source_data, + source_size, + nsurl_access(hlcache_handle_get_url(c))); CloseIFF(iffh); } diff --git a/frontends/amiga/dt_anim.c b/frontends/amiga/dt_anim.c index bd049206c..8d7e8955c 100644 --- a/frontends/amiga/dt_anim.c +++ b/frontends/amiga/dt_anim.c @@ -167,15 +167,15 @@ bool amiga_dt_anim_convert(struct content *c) amiga_dt_anim_content *plugin = (amiga_dt_anim_content *) c; union content_msg_data msg_data; int width, height; - const uint8 *data; + const uint8_t *data; + size_t size; UBYTE *bm_buffer; - ULONG size; struct BitMapHeader *bmh; unsigned int bm_flags = BITMAP_NEW | BITMAP_OPAQUE; struct adtFrame adt_frame; APTR clut; - data = (uint8 *)content__get_source_data(c, &size); + data = content__get_source_data(c, &size); if((plugin->dto = NewDTObject(NULL, DTA_SourceType, DTST_MEMORY, diff --git a/frontends/amiga/dt_picture.c b/frontends/amiga/dt_picture.c index 88ce1c834..660b2379e 100644 --- a/frontends/amiga/dt_picture.c +++ b/frontends/amiga/dt_picture.c @@ -131,11 +131,11 @@ nserror amiga_dt_picture_create(const content_handler *handler, static Object *amiga_dt_picture_newdtobject(struct amiga_dt_picture_content *adt) { - const uint8 *data; - ULONG size; + const uint8_t *data; + size_t size; if(adt->dto == NULL) { - data = (uint8 *)content__get_source_data((struct content *)adt, &size); + data = content__get_source_data((struct content *)adt, &size); adt->dto = NewDTObject(NULL, DTA_SourceType, DTST_MEMORY, @@ -152,12 +152,12 @@ static Object *amiga_dt_picture_newdtobject(struct amiga_dt_picture_content *adt static char *amiga_dt_picture_datatype(struct content *c) { - const uint8 *data; - ULONG size; + const uint8_t *data; + size_t size; struct DataType *dt; char *filetype = NULL; - data = (uint8 *)content__get_source_data(c, &size); + data = content__get_source_data(c, &size); if((dt = ObtainDataType(DTST_MEMORY, NULL, DTA_SourceAddress, data, diff --git a/frontends/amiga/dt_sound.c b/frontends/amiga/dt_sound.c index f3b365ddb..e0a794fa9 100644 --- a/frontends/amiga/dt_sound.c +++ b/frontends/amiga/dt_sound.c @@ -150,10 +150,10 @@ bool amiga_dt_sound_convert(struct content *c) amiga_dt_sound_content *plugin = (amiga_dt_sound_content *) c; int width = 50, height = 50; - const uint8 *data; - ULONG size; + const uint8_t *data; + size_t size; - data = (uint8 *)content__get_source_data(c, &size); + data = content__get_source_data(c, &size); plugin->dto = NewDTObject(NULL, DTA_SourceType, DTST_MEMORY, diff --git a/frontends/amiga/file.c b/frontends/amiga/file.c index 0fd43781d..845491c78 100644 --- a/frontends/amiga/file.c +++ b/frontends/amiga/file.c @@ -146,8 +146,9 @@ void ami_file_save(int type, char *fname, struct Window *win, struct browser_window *bw) { BPTR lock, fh; - const char *source_data; - ULONG source_size; + const uint8_t *source_data; + char *selection; + size_t source_size; struct bitmap *bm; ami_update_pointer(win, GUI_POINTER_WAIT); @@ -155,7 +156,8 @@ void ami_file_save(int type, char *fname, struct Window *win, if(ami_download_check_overwrite(fname, win, 0)) { switch(type) { case AMINS_SAVE_SOURCE: - if((source_data = content_get_source_data(object, &source_size))) { + source_data = content_get_source_data(object, &source_size); + if(source_data) { BPTR fh; if((fh = FOpen(fname, MODE_NEWFILE,0))) { FWrite(fh, source_data, 1, source_size); @@ -197,12 +199,17 @@ void ami_file_save(int type, char *fname, struct Window *win, break; case AMINS_SAVE_SELECTION: - if((source_data = browser_window_get_selection(bw))) { - if((fh = FOpen(fname, MODE_NEWFILE,0))) { - FWrite(fh, source_data, 1, strlen(source_data)); + selection = browser_window_get_selection(bw); + if(selection) { + fh = FOpen(fname, MODE_NEWFILE,0); + if (fh) { + FWrite(fh, + selection, + 1, + strlen(selection)); FClose(fh); } - free((void *)source_data); + free(selection); } break; } diff --git a/frontends/amiga/iff_dr2d.c b/frontends/amiga/iff_dr2d.c index a4c5855a1..5de1463f0 100644 --- a/frontends/amiga/iff_dr2d.c +++ b/frontends/amiga/iff_dr2d.c @@ -310,22 +310,27 @@ bool ami_svg_to_dr2d(struct IFFHandle *iffh, const char *buffer, bool ami_save_svg(struct hlcache_handle *c,char *filename) { struct IFFHandle *iffh; - const char *source_data; - ULONG source_size; + const uint8_t *source_data; + size_t source_size; - if(!ami_download_check_overwrite(filename, NULL, 0)) return false; + if (!ami_download_check_overwrite(filename, NULL, 0)) return false; - if((iffh = AllocIFF())) { - if((iffh->iff_Stream = Open(filename,MODE_NEWFILE))) { + if ((iffh = AllocIFF())) { + if ((iffh->iff_Stream = Open(filename,MODE_NEWFILE))) { InitIFFasDOS(iffh); } else return false; } - if((OpenIFF(iffh,IFFF_WRITE))) return false; + if ((OpenIFF(iffh,IFFF_WRITE))) return false; - if((source_data = content_get_source_data(c, &source_size))) - ami_svg_to_dr2d(iffh, source_data, source_size, nsurl_access(hlcache_handle_get_url(c))); + source_data = content_get_source_data(c, &source_size); + if (source_data != NULL) { + ami_svg_to_dr2d(iffh, + (const char *)source_data, + source_size, + nsurl_access(hlcache_handle_get_url(c))); + } if(iffh) CloseIFF(iffh); if(iffh->iff_Stream) Close((BPTR)iffh->iff_Stream); diff --git a/frontends/gtk/viewsource.c b/frontends/gtk/viewsource.c index 87ff6976a..7c11862c6 100644 --- a/frontends/gtk/viewsource.c +++ b/frontends/gtk/viewsource.c @@ -34,8 +34,8 @@ nserror nsgtk_viewsource(GtkWindow *parent, struct browser_window *bw) { nserror ret; struct hlcache_handle *hlcontent; - const char *source_data; - unsigned long source_size; + const uint8_t *source_data; + size_t source_size; char *ndata = NULL; size_t ndata_len; char *filename; @@ -67,8 +67,9 @@ nserror nsgtk_viewsource(GtkWindow *parent, struct browser_window *bw) } sprintf(title, "Source of %s - NetSurf", nsurl_access(browser_window_access_url(bw))); - ret = utf8_from_enc(source_data, - content_get_encoding(hlcontent, CONTENT_ENCODING_NORMAL), + ret = utf8_from_enc((const char *)source_data, + content_get_encoding(hlcontent, + CONTENT_ENCODING_NORMAL), source_size, &ndata, &ndata_len); diff --git a/frontends/riscos/content-handlers/artworks.c b/frontends/riscos/content-handlers/artworks.c index 8ec4edcae..fcae271ee 100644 --- a/frontends/riscos/content-handlers/artworks.c +++ b/frontends/riscos/content-handlers/artworks.c @@ -170,8 +170,8 @@ bool artworks_convert(struct content *c) { artworks_content *aw = (artworks_content *) c; union content_msg_data msg_data; - const char *source_data; - unsigned long source_size; + const uint8_t *source_data; + size_t source_size; void *init_workspace; void *init_routine; os_error *error; @@ -224,7 +224,7 @@ bool artworks_convert(struct content *c) source_data = content__get_source_data(c, &source_size); /* initialise (convert file to new format if required) */ - error = awrender_init(&source_data, &source_size, + error = awrender_init((const char **)&source_data, &source_size, init_routine, init_workspace); if (error) { NSLOG(netsurf, INFO, "awrender_init: 0x%x : %s", @@ -313,8 +313,8 @@ bool artworks_redraw(struct content *c, struct content_redraw_data *data, }; artworks_content *aw = (artworks_content *) c; struct awinfo_block info; - const char *source_data; - unsigned long source_size; + const uint8_t *source_data; + size_t source_size; os_error *error; os_trfm matrix; int vals[24]; @@ -389,17 +389,17 @@ bool artworks_redraw(struct content *c, struct content_redraw_data *data, source_data = content__get_source_data(c, &source_size); - error = awrender_render(source_data, - &info, - &matrix, - vals, - &aw->block, - &aw->size, - 110, /* fully anti-aliased */ - 0, - source_size, - aw->render_routine, - aw->render_workspace); + error = awrender_render((const char *)source_data, + &info, + &matrix, + vals, + &aw->block, + &aw->size, + 110, /* fully anti-aliased */ + 0, + source_size, + aw->render_routine, + aw->render_workspace); if (error) { NSLOG(netsurf, INFO, "awrender_render: 0x%x: %s", diff --git a/frontends/riscos/content-handlers/draw.c b/frontends/riscos/content-handlers/draw.c index bb66f9dbb..a436ccee7 100644 --- a/frontends/riscos/content-handlers/draw.c +++ b/frontends/riscos/content-handlers/draw.c @@ -112,8 +112,8 @@ bool draw_convert(struct content *c) { draw_content *draw = (draw_content *) c; union content_msg_data msg_data; - const char *source_data; - unsigned long source_size; + const uint8_t *source_data; + size_t source_size; const void *data; os_box bbox; os_error *error; @@ -180,8 +180,8 @@ bool draw_redraw(struct content *c, struct content_redraw_data *data, { draw_content *draw = (draw_content *) c; os_trfm matrix; - const char *source_data; - unsigned long source_size; + const uint8_t *source_data; + size_t source_size; const void *src_data; os_error *error; diff --git a/frontends/riscos/content-handlers/sprite.c b/frontends/riscos/content-handlers/sprite.c index 3556aa555..650d8e9aa 100644 --- a/frontends/riscos/content-handlers/sprite.c +++ b/frontends/riscos/content-handlers/sprite.c @@ -16,7 +16,8 @@ * along with this program. If not, see . */ -/** \file +/** + * \file * Content for image/x-riscos-sprite (RISC OS implementation). * * No conversion is necessary: we can render RISC OS sprites directly under @@ -112,8 +113,8 @@ bool sprite_convert(struct content *c) os_error *error; int w, h; union content_msg_data msg_data; - const char *source_data; - unsigned long source_size; + const uint8_t *source_data; + size_t source_size; const void *sprite_data; char *title; diff --git a/frontends/riscos/gui.c b/frontends/riscos/gui.c index be1bc8d9a..93bad1638 100644 --- a/frontends/riscos/gui.c +++ b/frontends/riscos/gui.c @@ -1980,8 +1980,8 @@ void ro_gui_view_source(struct hlcache_handle *c) int objtype; bool done = false; - const char *source_data; - unsigned long source_size; + const uint8_t *source_data; + size_t source_size; if (!c) { ro_warn_user("MiscError", "No document source"); diff --git a/frontends/riscos/save.c b/frontends/riscos/save.c index 76ce6d3e5..86797602b 100644 --- a/frontends/riscos/save.c +++ b/frontends/riscos/save.c @@ -908,8 +908,8 @@ static bool ro_gui_save_object_native(struct hlcache_handle *h, char *path) if (file_type == osfile_TYPE_SPRITE || file_type == osfile_TYPE_DRAW) { /* Native sprite or drawfile */ - const char *source_data; - unsigned long source_size; + const uint8_t *source_data; + size_t source_size; os_error *error; source_data = content_get_source_data(h, &source_size); @@ -960,8 +960,8 @@ static bool ro_gui_save_content(struct hlcache_handle *h, char *path, bool force_overwrite) { os_error *error; - const char *source_data; - unsigned long source_size; + const uint8_t *source_data; + size_t source_size; /* does the user want to check for collisions when saving? */ if (!force_overwrite) { diff --git a/frontends/riscos/theme_install.c b/frontends/riscos/theme_install.c index fbca9e4fa..a235fe471 100644 --- a/frontends/riscos/theme_install.c +++ b/frontends/riscos/theme_install.c @@ -47,8 +47,6 @@ wimp_w dialog_theme_install; static void theme_install_close(wimp_w w); static nserror theme_install_callback(struct hlcache_handle *handle, const hlcache_event *event, void *pw); -static bool theme_install_read(const char *source_data, - unsigned long source_size); /** @@ -79,6 +77,33 @@ void theme_install_start(struct hlcache_handle *c) } +/** + * Fill in theme_install_descriptor from received theme data. + * + * \param source_data received data + * \param source_size size of data + * \return true if data is a correct theme, false on error + * + * If the data is a correct theme, theme_install_descriptor is filled in. + */ + +static bool +theme_install_read(const uint8_t *source_data, size_t source_size) +{ + const void *data = source_data; + + if (source_size < sizeof(struct theme_file_header)) + return false; + if (!ro_gui_theme_read_file_header(&theme_install_descriptor, + (struct theme_file_header *) data)) + return false; + if (source_size - sizeof(struct theme_file_header) != + theme_install_descriptor.compressed_size) + return false; + return true; +} + + /** * Callback for fetchcache() for theme install fetches. */ @@ -90,8 +115,8 @@ nserror theme_install_callback(struct hlcache_handle *handle, case CONTENT_MSG_DONE: { - const char *source_data; - unsigned long source_size; + const uint8_t *source_data; + size_t source_size; int author_indent = 0; char buffer[256]; @@ -135,30 +160,6 @@ nserror theme_install_callback(struct hlcache_handle *handle, } -/** - * Fill in theme_install_descriptor from received theme data. - * - * \param source_data received data - * \param source_size size of data - * \return true if data is a correct theme, false on error - * - * If the data is a correct theme, theme_install_descriptor is filled in. - */ - -bool theme_install_read(const char *source_data, unsigned long source_size) -{ - const void *data = source_data; - - if (source_size < sizeof(struct theme_file_header)) - return false; - if (!ro_gui_theme_read_file_header(&theme_install_descriptor, - (struct theme_file_header *) data)) - return false; - if (source_size - sizeof(struct theme_file_header) != - theme_install_descriptor.compressed_size) - return false; - return true; -} /** @@ -174,8 +175,8 @@ bool ro_gui_theme_install_apply(wimp_w w) struct theme_descriptor *theme_install; os_error *error; char *fix; - const char *source_data; - unsigned long source_size; + const uint8_t *source_data; + size_t source_size; assert(theme_install_content); -- cgit v1.2.3