@@ -69,25 +69,25 @@ defmodule MMDB2Decoder.Data do
69
69
<< @ extended :: size ( 3 ) , 29 :: size ( 5 ) , len :: size ( 8 ) , @ extended_array , part_rest :: binary >> ,
70
70
data_full
71
71
) do
72
- decode_array ( part_rest , data_full , 28 + len )
72
+ decode_array ( part_rest , data_full , 28 + len , [ ] )
73
73
end
74
74
75
75
def decode (
76
76
<< @ extended :: size ( 3 ) , 30 :: size ( 5 ) , len :: size ( 16 ) , @ extended_array , part_rest :: binary >> ,
77
77
data_full
78
78
) do
79
- decode_array ( part_rest , data_full , 285 + len )
79
+ decode_array ( part_rest , data_full , 285 + len , [ ] )
80
80
end
81
81
82
82
def decode (
83
83
<< @ extended :: size ( 3 ) , 31 :: size ( 5 ) , len :: size ( 24 ) , @ extended_array , part_rest :: binary >> ,
84
84
data_full
85
85
) do
86
- decode_array ( part_rest , data_full , 65821 + len )
86
+ decode_array ( part_rest , data_full , 65821 + len , [ ] )
87
87
end
88
88
89
89
def decode ( << @ extended :: size ( 3 ) , len :: size ( 5 ) , @ extended_array , part_rest :: binary >> , data_full ) do
90
- decode_array ( part_rest , data_full , len )
90
+ decode_array ( part_rest , data_full , len , [ ] )
91
91
end
92
92
93
93
def decode ( << @ extended :: size ( 3 ) , value :: size ( 5 ) , @ extended_bool , part_rest :: binary >> , _ ) do
@@ -128,19 +128,19 @@ defmodule MMDB2Decoder.Data do
128
128
end
129
129
130
130
def decode ( << @ map :: size ( 3 ) , 29 :: size ( 5 ) , len :: size ( 8 ) , part_rest :: binary >> , data_full ) do
131
- decode_map ( part_rest , data_full , 28 + len )
131
+ decode_map ( part_rest , data_full , 28 + len , % { } )
132
132
end
133
133
134
134
def decode ( << @ map :: size ( 3 ) , 30 :: size ( 5 ) , len :: size ( 16 ) , part_rest :: binary >> , data_full ) do
135
- decode_map ( part_rest , data_full , 285 + len )
135
+ decode_map ( part_rest , data_full , 285 + len , % { } )
136
136
end
137
137
138
138
def decode ( << @ map :: size ( 3 ) , 31 :: size ( 5 ) , len :: size ( 24 ) , part_rest :: binary >> , data_full ) do
139
- decode_map ( part_rest , data_full , 65821 + len )
139
+ decode_map ( part_rest , data_full , 65821 + len , % { } )
140
140
end
141
141
142
142
def decode ( << @ map :: size ( 3 ) , len :: size ( 5 ) , part_rest :: binary >> , data_full ) do
143
- decode_map ( part_rest , data_full , len )
143
+ decode_map ( part_rest , data_full , len , % { } )
144
144
end
145
145
146
146
def decode ( << @ pointer :: size ( 3 ) , 0 :: size ( 2 ) , offset :: size ( 11 ) , part_rest :: bitstring >> , data_full ) do
@@ -183,18 +183,14 @@ defmodule MMDB2Decoder.Data do
183
183
184
184
# value decoding
185
185
186
- defp decode_array ( data_part , data_full , size ) do
187
- decode_array_rec ( data_part , data_full , size , [ ] )
188
- end
189
-
190
- defp decode_array_rec ( data_part , _ , 0 , acc ) do
186
+ defp decode_array ( data_part , _ , 0 , acc ) do
191
187
{ Enum . reverse ( acc ) , data_part }
192
188
end
193
189
194
- defp decode_array_rec ( data_part , data_full , size , acc ) do
190
+ defp decode_array ( data_part , data_full , size , acc ) do
195
191
{ value , rest } = decode ( data_part , data_full )
196
192
197
- decode_array_rec ( rest , data_full , size - 1 , [ value | acc ] )
193
+ decode_array ( rest , data_full , size - 1 , [ value | acc ] )
198
194
end
199
195
200
196
defp decode_binary ( data_part , len ) do
@@ -203,21 +199,17 @@ defmodule MMDB2Decoder.Data do
203
199
{ value , rest }
204
200
end
205
201
206
- defp decode_map ( data_part , data_full , size ) do
207
- decode_map_rec ( data_part , data_full , size , % { } )
208
- end
209
-
210
- defp decode_map_rec ( data_part , _ , 0 , acc ) do
202
+ defp decode_map ( data_part , _ , 0 , acc ) do
211
203
{ acc , data_part }
212
204
end
213
205
214
- defp decode_map_rec ( data_part , data_full , size , acc ) do
206
+ defp decode_map ( data_part , data_full , size , acc ) do
215
207
{ key , part_rest } = decode ( data_part , data_full )
216
208
{ value , dec_rest } = decode ( part_rest , data_full )
217
209
218
210
acc = Map . put ( acc , String . to_atom ( key ) , value )
219
211
220
- decode_map_rec ( dec_rest , data_full , size - 1 , acc )
212
+ decode_map ( dec_rest , data_full , size - 1 , acc )
221
213
end
222
214
223
215
defp decode_signed ( data_part , bitlen ) do
0 commit comments