summaryrefslogtreecommitdiff
path: root/riscos/window.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2015-03-28 18:34:42 +0000
committerVincent Sanders <vince@kyllikki.org>2015-03-28 18:34:42 +0000
commitc0469ca905ef699fef36b02c058a21fed821d564 (patch)
treeaf65055cdebf7245d7bd811e58972d798e746103 /riscos/window.c
parente62db5a49cbd7c8786a1b88617e5629ad0d0f64e (diff)
downloadnetsurf-c0469ca905ef699fef36b02c058a21fed821d564.tar.gz
netsurf-c0469ca905ef699fef36b02c058a21fed821d564.tar.bz2
pass a url info the RISC OS object info preparation
The target url was previously being passed as a string derived from nsurl_access which was asserting if the target_url was NULL. The nsurl is now passed and a null check performed before attempting to access it. Closes #2298
Diffstat (limited to 'riscos/window.c')
-rw-r--r--riscos/window.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/riscos/window.c b/riscos/window.c
index 05e929267..fae756646 100644
--- a/riscos/window.c
+++ b/riscos/window.c
@@ -126,7 +126,7 @@ static bool ro_gui_window_content_export_types(hlcache_handle *h,
bool *export_draw, bool *export_sprite);
static void ro_gui_window_prepare_pageinfo(struct gui_window *g);
static void ro_gui_window_prepare_objectinfo(hlcache_handle *object,
- const char *href);
+ nsurl *target_url);
static void ro_gui_window_launch_url(struct gui_window *g, const char *url);
static void ro_gui_window_action_home(struct gui_window *g);
@@ -2443,7 +2443,7 @@ void ro_gui_window_menu_warning(wimp_w w, wimp_i i, wimp_menu *menu,
case BROWSER_OBJECT_INFO:
if (current_menu_object != NULL)
ro_gui_window_prepare_objectinfo(current_menu_object,
- nsurl_access(current_menu_url));
+ current_menu_url);
break;
case BROWSER_OBJECT_SAVE:
@@ -2758,7 +2758,7 @@ bool ro_gui_window_menu_select(wimp_w w, wimp_i i, wimp_menu *menu,
case BROWSER_OBJECT_INFO:
if (current_menu_object != NULL) {
ro_gui_window_prepare_objectinfo(current_menu_object,
- nsurl_access(current_menu_url));
+ current_menu_url);
ro_gui_dialog_open_persistent(g->window,
dialog_objinfo, false);
}
@@ -3854,28 +3854,30 @@ void ro_gui_window_prepare_pageinfo(struct gui_window *g)
* Prepare the object info window for use
*
* \param *object the object for which information is to be displayed
- * \param *href corresponding href, if any
+ * \param *target_url corresponding url, if any
*/
-void ro_gui_window_prepare_objectinfo(hlcache_handle *object, const char *href)
+void ro_gui_window_prepare_objectinfo(hlcache_handle *object, nsurl *target_url)
{
char icon_buf[20] = "file_xxx";
const char *url;
lwc_string *mime;
const char *target = "-";
- sprintf(icon_buf, "file_%.3x",
- ro_content_filetype(object));
- if (!ro_gui_wimp_sprite_exists(icon_buf))
+ sprintf(icon_buf, "file_%.3x",ro_content_filetype(object));
+ if (!ro_gui_wimp_sprite_exists(icon_buf)) {
sprintf(icon_buf, "file_xxx");
+ }
url = nsurl_access(hlcache_handle_get_url(object));
- if (url == NULL)
+ if (url == NULL) {
url = "-";
+ }
mime = content_get_mime_type(object);
- if (href)
- target = href;
+ if (target_url != NULL) {
+ target = nsurl_access(target_url);
+ }
ro_gui_set_icon_string(dialog_objinfo, ICON_OBJINFO_ICON,
icon_buf, true);