From 0bc47607cad0c9ad475a7c0a8e7aa5633d00ceb5 Mon Sep 17 00:00:00 2001 From: Siri Hansen Date: Thu, 16 Feb 2012 14:21:19 +0100 Subject: [reltool] Fix badmatch when starting GUI OTP-9792 Start of reltool GUI sometimes crashes with a badmatch in reltool_sys_win:do_init/1 because the #sys record fetched with reltool_server:get_sys/1 differs from the #sys record returned from reltool_server:start_link/1. This has been corrected. reltool_server:start_link/1 no longer retuns the #sys record. --- lib/reltool/src/reltool.erl | 4 ++-- lib/reltool/src/reltool_server.erl | 5 ++--- lib/reltool/src/reltool_sys_win.erl | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/reltool/src/reltool.erl b/lib/reltool/src/reltool.erl index 54eb1ca9e1..a2b1c9468c 100644 --- a/lib/reltool/src/reltool.erl +++ b/lib/reltool/src/reltool.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2009-2011. All Rights Reserved. +%% Copyright Ericsson AB 2009-2012. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -66,7 +66,7 @@ start_link(Options) when is_list(Options) -> -spec start_server(options()) -> {ok, server_pid()} | {error, reason()}. start_server(Options) -> case reltool_server:start_link(Options) of - {ok, ServerPid, _Common, _Sys} -> + {ok, ServerPid, _Common} -> {ok, ServerPid}; {error, Reason} -> {error, lists:flatten(io_lib:format("~p", [Reason]))} diff --git a/lib/reltool/src/reltool_server.erl b/lib/reltool/src/reltool_server.erl index b6ffb9b134..da15d91581 100644 --- a/lib/reltool/src/reltool_server.erl +++ b/lib/reltool/src/reltool_server.erl @@ -133,11 +133,10 @@ init(Options) -> do_init(Options) -> {S, Status} = parse_options(Options), - #state{parent_pid = ParentPid, common = C, sys = Sys} = S, + #state{parent_pid = ParentPid, common = C} = S, %% process_flag(trap_exit, (S#state.common)#common.trap_exit), - proc_lib:init_ack(ParentPid, - {ok, self(), C, Sys#sys{apps = undefined}}), + proc_lib:init_ack(ParentPid, {ok, self(), C}), {S2, Apps, Status2} = refresh(S, true, Status), Status3 = analyse(S2, Apps, Status2), case Status3 of diff --git a/lib/reltool/src/reltool_sys_win.erl b/lib/reltool/src/reltool_sys_win.erl index f29a95af38..c49641d6a3 100644 --- a/lib/reltool/src/reltool_sys_win.erl +++ b/lib/reltool/src/reltool_sys_win.erl @@ -135,7 +135,7 @@ init(Options) -> do_init([{safe_config, Safe}, {parent, Parent} | Options]) -> case reltool_server:start_link(Options) of - {ok, ServerPid, C, Sys} -> + {ok, ServerPid, C} -> process_flag(trap_exit, C#common.trap_exit), wx:new(), wx:debug(C#common.wx_debug), -- cgit v1.2.3