From 0dd4fe49665a39a407764823ea3fabbc7bd8935b Mon Sep 17 00:00:00 2001 From: Anders Svensson Date: Tue, 18 Apr 2017 10:46:39 +0200 Subject: Optimize sub binary creation base/diameter_codec.erl:716: Warning: OPTIMIZED: creation of sub binary delayed --- lib/diameter/src/base/diameter_codec.erl | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'lib/diameter') diff --git a/lib/diameter/src/base/diameter_codec.erl b/lib/diameter/src/base/diameter_codec.erl index ac74a1b9c1..90683e7329 100644 --- a/lib/diameter/src/base/diameter_codec.erl +++ b/lib/diameter/src/base/diameter_codec.erl @@ -703,20 +703,23 @@ pack_avp(#diameter_avp{code = undefined, data = B}) Len = size(<> = <>), <>; -%% ... when ignoring errors in Failed-AVP ... -%% ... during a relay encode ... -pack_avp(#diameter_avp{data = <<0:1, B/binary>>} = A) -> - pack_data(B, A); - -%% ... or as an iolist. pack_avp(#diameter_avp{data = Data} = A) -> - pack_data(Data, A). + pack_bits(Data, A). header_length(<<_:32, 1:1, _/bitstring>>) -> 12; header_length(_) -> 8. +%% pack_bits/2 + +%% Ignoring errors in Failed-AVP or during a relay encode. +pack_bits(<<0:1, B/binary>>, Avp) -> + pack_bits(B, Avp); + +pack_bits(Data, Avp) -> + pack_data(Data, Avp). + %% pack_data/2 pack_data(Data, #diameter_avp{code = Code, -- cgit v1.2.3