From 0bc6256c00f81cc13a25245dd95ec7ef8672ab61 Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Wed, 13 May 2015 18:40:59 +0200 Subject: charts: Fix error handling if gvRenderData() returns an error If libgvc was not built properly or is running against incorrectly versioned plugins, gvRenderData() can fail and return a null string. Ensure libvaladoc handles this correctly. https://bugzilla.gnome.org/show_bug.cgi?id=711590 --- src/libvaladoc/charts/chart.vala | 5 +++-- src/libvaladoc/html/htmlmarkupwriter.vala | 8 +++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/libvaladoc/charts/chart.vala b/src/libvaladoc/charts/chart.vala index 03dab30f7..a6307d7ff 100644 --- a/src/libvaladoc/charts/chart.vala +++ b/src/libvaladoc/charts/chart.vala @@ -52,13 +52,14 @@ public class Valadoc.Charts.Chart : Api.Visitor { context.render (graph, file_type, file); } - public uint8[] write_buffer (string file_type) { + public uint8[]? write_buffer (string file_type) { if (context == null) { context = factory.create_context (graph); } - uint8[] data; + uint8[]? data; + /* This will return null in data if it fails. */ context.render_data (graph, file_type, out data); return data; } diff --git a/src/libvaladoc/html/htmlmarkupwriter.vala b/src/libvaladoc/html/htmlmarkupwriter.vala index 113f0c6f1..15ed9efd1 100644 --- a/src/libvaladoc/html/htmlmarkupwriter.vala +++ b/src/libvaladoc/html/htmlmarkupwriter.vala @@ -44,9 +44,11 @@ public class Valadoc.Html.MarkupWriter : Valadoc.MarkupWriter { } public MarkupWriter add_usemap (Charts.Chart chart) { - string buf = (string) chart.write_buffer ("cmapx"); - raw_text ("\n"); - raw_text (buf); + string? buf = (string?) chart.write_buffer ("cmapx"); + if (buf != null) { + raw_text ("\n"); + raw_text ((!) buf); + } return this; } -- cgit v1.2.1