Improved NIF initialization.
diff --git a/src/jiffy.erl b/src/jiffy.erl
index d47a670..fb080eb 100644
--- a/src/jiffy.erl
+++ b/src/jiffy.erl
@@ -79,18 +79,15 @@
init() ->
- SoName = case code:priv_dir(?MODULE) of
- {error, bad_name} ->
- case filelib:is_dir(filename:join(["..", priv])) of
- true ->
- filename:join(["..", priv, ?MODULE]);
- _ ->
- filename:join([priv, ?MODULE])
- end;
- Dir ->
- filename:join(Dir, ?MODULE)
+ PrivDir = case code:priv_dir(?MODULE) of
+ {error, _} ->
+ EbinDir = filename:dirname(code:which(?MODULE)),
+ AppPath = filename:dirname(EbinDir),
+ filename:join(AppPath, "priv");
+ Path ->
+ Path
end,
- erlang:load_nif(SoName, 0).
+ erlang:load_nif(filename:join(PrivDir, "jiffy"), 0).
not_loaded(Line) ->