From: Florian Brosch Date: Thu, 3 Feb 2011 17:53:22 +0000 (+0100) Subject: libvaladoc/html: HtmlRenderer: null-ptr-fix X-Git-Tag: 0.37.1~3^2~404 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=365a7f610e1efd8d0c8f2be0b0ed773593751600;p=thirdparty%2Fvala.git libvaladoc/html: HtmlRenderer: null-ptr-fix --- diff --git a/src/libvaladoc/html/htmlrenderer.vala b/src/libvaladoc/html/htmlrenderer.vala index dc4c64cc6..8fef88ea5 100755 --- a/src/libvaladoc/html/htmlrenderer.vala +++ b/src/libvaladoc/html/htmlrenderer.vala @@ -57,16 +57,19 @@ public class Valadoc.Html.HtmlRenderer : ContentRenderer { return linker.get_relative_link (_container, symbol, _doclet.settings); } - private void write_symbol_link (Api.Node? symbol, string? label) { - if (symbol == null && label != null) { - writer.start_tag ("code"); - writer.text (label); - writer.end_tag ("code"); - } else if (symbol != null) { - var url = get_url (symbol); - writer.link (url, - (label == null || label == "") ? symbol.get_full_name () : label, - cssresolver.resolve (symbol)); + private void write_unresolved_symbol_link (string label) { + writer.start_tag ("code"); + writer.text (label); + writer.end_tag ("code"); + } + + private void write_resolved_symbol_link (Api.Node symbol, string? given_label) { + var label = (given_label == null || given_label == "") ? symbol.get_full_name () : given_label; + var url = get_url (symbol); + if (url == null) { + write_unresolved_symbol_link (label); + } else { + writer.link (url, label, cssresolver.resolve (symbol)); } } @@ -204,7 +207,11 @@ public class Valadoc.Html.HtmlRenderer : ContentRenderer { taglets, (taglet) => { var see = taglet as Taglets.See; - write_symbol_link (see.symbol, see.symbol_name); + if (see.symbol == null) { + write_unresolved_symbol_link (see.symbol_name); + } else { + write_resolved_symbol_link (see.symbol, see.symbol_name); + } }); } @@ -236,14 +243,10 @@ public class Valadoc.Html.HtmlRenderer : ContentRenderer { } public override void visit_symbol_link (SymbolLink element) { - if (element.symbol == null || element.symbol == _container - || !element.symbol.is_browsable (_doclet.settings) - || !element.symbol.package.is_browsable (_doclet.settings)) { - writer.start_tag ("code"); - writer.text (element.label); - writer.end_tag ("code"); + if (element.symbol == null) { + write_unresolved_symbol_link (element.label); } else { - write_symbol_link (element.symbol, element.label); + write_resolved_symbol_link (element.symbol, element.label); } }