From 8f9ca440d98ad1c9b4da5c65d74243a88d1bc150 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Mon, 2 Sep 2013 20:08:58 +0200 Subject: [PATCH] Fix geef_ref:resolve/1 We never updated what the NIF returns, and we were making a lookup too many by trying to load the reference which we already have. --- src/geef_ref.erl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/geef_ref.erl b/src/geef_ref.erl index 8fa2be9..40237a5 100644 --- a/src/geef_ref.erl +++ b/src/geef_ref.erl @@ -74,11 +74,11 @@ next(#geef_iterator{type=ref, repo=Repo, handle=Handle}) -> -spec resolve(ref()) -> {ok, ref()} | {error, term()}. resolve(Ref = #geef_reference{type=oid}) -> {ok, Ref}; % resolving an oid ref is a no-op, skip going into the NIF -resolve(#geef_reference{repo=Repo, name=Name, type=symbolic}) -> +resolve(#geef_reference{repo=Repo, type=symbolic, target=Name}) -> RepoHandle = geef_repo:handle(Repo), case geef_nif:reference_resolve(RepoHandle, Name) of - {ok, Type, Target} -> - {ok, make(Repo, Name, Type, Target)}; + {ok, ResolvedName, Target} -> + {ok, make(Repo, ResolvedName, oid, Target)}; Other = {error, _} -> Other end.