From 29660983a70f57ba80b1765a4795bd7005a52cc0 Mon Sep 17 00:00:00 2001 From: Marc-André Lureau Date: Fri, 11 Jan 2013 15:31:47 +0100 Subject: wixl: error out if can't resolve element --- tools/wixl/builder.vala | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'tools') diff --git a/tools/wixl/builder.vala b/tools/wixl/builder.vala index 2bc7122..252517b 100644 --- a/tools/wixl/builder.vala +++ b/tools/wixl/builder.vala @@ -311,19 +311,23 @@ namespace Wixl { } G? resolve (WixElement element) throws GLib.Error { + G? resolved = null; + if (element.get_type () == typeof (G)) - return element; + resolved = element; else if (element is WixElementRef) { var ref = element as WixElementRef; if (ref.ref_type != typeof (G)) - return null; - if (ref.resolved != null) - return ref.resolved; - ref.resolved = find_element (element.Id); - return ref.resolved; + resolved = null; + else if (ref.resolved == null) + ref.resolved = find_element (element.Id); + resolved = ref.resolved; } - throw new Wixl.Error.FAILED ("couldn't resolve %s", element.Id); + if (resolved == null) + throw new Wixl.Error.FAILED ("couldn't resolve %s", element.Id); + + return resolved; } public override void visit_component (WixComponent comp) throws GLib.Error { -- cgit