Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaweł Chmielowski <pchmielowski@process-one.net>2018-12-13 13:45:45 +0300
committerPaweł Chmielowski <pchmielowski@process-one.net>2018-12-13 13:46:53 +0300
commitc88a2d056968254cdb513d81e133d45484a6236a (patch)
tree938033a3e7c5dae5b1e1edefc8d5dafeacb50efe /src/ejabberd_hooks.erl
parent34ac21e66b16a82094e3ce0f6b3f61916daca0c9 (diff)
Add code for handling deprecations of get_stacktrace()
Diffstat (limited to 'src/ejabberd_hooks.erl')
-rw-r--r--src/ejabberd_hooks.erl15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/ejabberd_hooks.erl b/src/ejabberd_hooks.erl
index bc67b4c67..383f203cc 100644
--- a/src/ejabberd_hooks.erl
+++ b/src/ejabberd_hooks.erl
@@ -57,6 +57,7 @@
terminate/2]).
-include("logger.hrl").
+-include("ejabberd_stacktrace.hrl").
-record(state, {}).
-type local_hook() :: { Seq :: integer(), Module :: atom(), Function :: atom()}.
@@ -129,14 +130,14 @@ delete_dist(Hook, Node, Module, Function, Seq) ->
delete_dist(Hook, Host, Node, Module, Function, Seq) ->
gen_server:call(ejabberd_hooks, {delete, Hook, Host, Node, Module, Function, Seq}).
--spec delete_all_hooks() -> true.
+-spec delete_all_hooks() -> true.
%% @doc Primarily for testing / instrumentation
delete_all_hooks() ->
gen_server:call(ejabberd_hooks, {delete_all}).
-spec get_handlers(atom(), binary() | global) -> [local_hook() | distributed_hook()].
-%% @doc Returns currently set handler for hook name
+%% @doc Returns currently set handler for hook name
get_handlers(Hookname, Host) ->
gen_server:call(ejabberd_hooks, {get_handlers, Hookname, Host}).
@@ -264,7 +265,7 @@ handle_delete(Hook, Host, El) ->
ok;
[] ->
ok
- end.
+ end.
%%----------------------------------------------------------------------
%% Func: handle_cast/2
@@ -379,15 +380,11 @@ safe_apply(Hook, Module, Function, Args) ->
true ->
apply(Module, Function, Args)
end
- catch E:R when E /= exit; R /= normal ->
- St = get_stacktrace(),
+ catch ?EX_RULE(E, R, St) when E /= exit; R /= normal ->
?ERROR_MSG("Hook ~p crashed when running ~p:~p/~p:~n"
"** Reason = ~p~n"
"** Arguments = ~p",
[Hook, Module, Function, length(Args),
- {E, R, St}, Args]),
+ {E, R, ?EX_STACK(St)}, Args]),
'EXIT'
end.
-
-get_stacktrace() ->
- [{Mod, Fun, Loc, Args} || {Mod, Fun, Args, Loc} <- erlang:get_stacktrace()].