File 2214-Avoid-calling-absname-1-on-an-absolute-path.patch of Package erlang

From 77cad6b3b87e5c073040ec71f42683e8da6847a2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= <bjorn@erlang.org>
Date: Wed, 27 Apr 2016 21:54:57 +0200
Subject: [PATCH 4/9] Avoid calling absname/1 on an absolute path

absname/1 is quite expensive, so we should not call if we already
have a normalized absolute path.
---
 lib/kernel/src/code_server.erl | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/lib/kernel/src/code_server.erl b/lib/kernel/src/code_server.erl
index 5fd434e..4579ac5 100644
--- a/lib/kernel/src/code_server.erl
+++ b/lib/kernel/src/code_server.erl
@@ -1160,8 +1160,13 @@ mod_to_bin([Dir|Tail], Mod) ->
     case erl_prim_loader:get_file(File) of
 	error -> 
 	    mod_to_bin(Tail, Mod);
-	{ok,Bin,FName} ->
-	    {Mod,Bin,absname(FName)}
+	{ok,Bin,_} ->
+	    case filename:pathtype(File) of
+		absolute ->
+		    {Mod,Bin,File};
+		_ ->
+		    {Mod,Bin,absname(File)}
+	    end
     end;
 mod_to_bin([], Mod) ->
     %% At last, try also erl_prim_loader's own method
-- 
2.1.4

openSUSE Build Service is sponsored by