diff options
author | Dan Gudmundsson <dgud@erlang.org> | 2019-11-27 10:07:46 +0100 |
---|---|---|
committer | Dan Gudmundsson <dgud@erlang.org> | 2019-11-27 10:07:46 +0100 |
commit | 2f1ff34d1b89923d7e3595710c3d77d83c68f79c (patch) | |
tree | f64bc7992546b9161c0a51e36eb8141cb18aee71 | |
parent | 67558fa90dce4db96eef88979e1e29b1e5778b34 (diff) | |
download | erlang-2f1ff34d1b89923d7e3595710c3d77d83c68f79c.tar.gz |
Fix deprecated warning
Modernize usage, i.e. copy from current gen_server.
-rw-r--r-- | lib/wx/src/wx_object.erl | 54 |
1 files changed, 32 insertions, 22 deletions
diff --git a/lib/wx/src/wx_object.erl b/lib/wx/src/wx_object.erl index cc19ff9770..181206c762 100644 --- a/lib/wx/src/wx_object.erl +++ b/lib/wx/src/wx_object.erl @@ -670,28 +670,38 @@ dbg_opts(Name, Opts) -> %%----------------------------------------------------------------- format_status(Opt, StatusData) -> [PDict, SysState, Parent, Debug, [Name, State, Mod, _Time]] = StatusData, - StatusHdr = "Status for wx object ", - Header = if - is_pid(Name) -> - lists:concat([StatusHdr, pid_to_list(Name)]); - is_atom(Name); is_list(Name) -> - lists:concat([StatusHdr, Name]); - true -> - {StatusHdr, Name} - end, - Log = sys:get_debug(log, Debug, []), - Specfic = - case erlang:function_exported(Mod, format_status, 2) of - true -> - case catch Mod:format_status(Opt, [PDict, State]) of - {'EXIT', _} -> [{data, [{"State", State}]}]; - Else -> Else - end; - _ -> - [{data, [{"State", State}]}] - end, + Header = gen:format_status_header("Status for wx object ", Name), + Log = sys:get_log(Debug), + Specific = case format_status(Opt, Mod, PDict, State) of + S when is_list(S) -> S; + S -> [S] + end, [{header, Header}, {data, [{"Status", SysState}, {"Parent", Parent}, - {"Logged events", Log}]} | - Specfic]. + {"Logged events", format_log_state(Mod, Log)}]} | + Specific]. + +format_log_state(Mod, Log) -> + [case Event of + {out,Msg,From,State} -> + {out,Msg,From,format_status(terminate, Mod, get(), State)}; + {noreply,State} -> + {noreply,format_status(terminate, Mod, get(), State)}; + _ -> Event + end || Event <- Log]. + +format_status(Opt, Mod, PDict, State) -> + DefStatus = case Opt of + terminate -> State; + _ -> [{data, [{"State", State}]}] + end, + case erlang:function_exported(Mod, format_status, 2) of + true -> + case catch Mod:format_status(Opt, [PDict, State]) of + {'EXIT', _} -> DefStatus; + Else -> Else + end; + _ -> + DefStatus + end. |