summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--src/jlib.erl6
2 files changed, 8 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index efd6468b..6c5dd217 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-04-27 Badlop <badlop@process-one.net>
+
+ * src/jlib.erl: Fix recursive call to speedup base64
+ decoding (thanks to Jeffrey Rogiers)(EJAB-333)
+
2009-04-24 Christophe Romain <christophe.romain@process-one.net>
* src/odbc/ejabberd_odbc.erl: allow to run query bloc as erlang
diff --git a/src/jlib.erl b/src/jlib.erl
index 7216579a..03bf9980 100644
--- a/src/jlib.erl
+++ b/src/jlib.erl
@@ -702,7 +702,7 @@ decode1_base64([Sextet1,Sextet2,$=,$=|Rest]) ->
(d(Sextet1) bsl 18) bor
(d(Sextet2) bsl 12),
Octet1=Bits2x6 bsr 16,
- [Octet1|decode_base64(Rest)];
+ [Octet1|decode1_base64(Rest)];
decode1_base64([Sextet1,Sextet2,Sextet3,$=|Rest]) ->
Bits3x6=
(d(Sextet1) bsl 18) bor
@@ -710,7 +710,7 @@ decode1_base64([Sextet1,Sextet2,Sextet3,$=|Rest]) ->
(d(Sextet3) bsl 6),
Octet1=Bits3x6 bsr 16,
Octet2=(Bits3x6 bsr 8) band 16#ff,
- [Octet1,Octet2|decode_base64(Rest)];
+ [Octet1,Octet2|decode1_base64(Rest)];
decode1_base64([Sextet1,Sextet2,Sextet3,Sextet4|Rest]) ->
Bits4x6=
(d(Sextet1) bsl 18) bor
@@ -720,7 +720,7 @@ decode1_base64([Sextet1,Sextet2,Sextet3,Sextet4|Rest]) ->
Octet1=Bits4x6 bsr 16,
Octet2=(Bits4x6 bsr 8) band 16#ff,
Octet3=Bits4x6 band 16#ff,
- [Octet1,Octet2,Octet3|decode_base64(Rest)];
+ [Octet1,Octet2,Octet3|decode1_base64(Rest)];
decode1_base64(_CatchAll) ->
"".