basho / webmachine (http://webmachine.basho.com/)
A REST-based system for building web applications.
| commit 81: | 15cd6ed98abc |
| parent 80: | 403802ea902e |
| branch: | default |
fix trace escape function to handle non-nil-terminated lists
(they're valid data, and the dict module sometimes uses them)
9 months ago
Changed (Δ334 bytes):
raw changeset »
src/webmachine_resource.erl (10 lines added, 1 lines removed)
Up to file-list src/webmachine_resource.erl:
| … | … | @@ -185,12 +185,21 @@ escape_trace_data(Fun) when is_function( |
185 |
185 |
escape_trace_data(Pid) when is_pid(Pid) -> |
186 |
186 |
{'WMTRACE_ESCAPED_PID', pid_to_list(Pid)}; |
187 |
187 |
escape_trace_data(List) when is_list(List) -> |
188 |
|
|
188 |
escape_trace_list(List, []); |
|
189 |
189 |
escape_trace_data(Tuple) when is_tuple(Tuple) -> |
190 |
190 |
list_to_tuple(escape_trace_data(tuple_to_list(Tuple))); |
191 |
191 |
escape_trace_data(Other) -> |
192 |
192 |
Other. |
193 |
193 |
|
194 |
escape_trace_list([Head|Tail], Acc) -> |
|
195 |
escape_trace_list(Tail, [escape_trace_data(Head)|Acc]); |
|
196 |
escape_trace_list([], Acc) -> |
|
197 |
%% proper, nil-terminated list |
|
198 |
lists:reverse(Acc); |
|
199 |
escape_trace_list(Final, Acc) -> |
|
200 |
%% non-nil-terminated list, like the dict module uses |
|
201 |
lists:reverse(tl(Acc))++[hd(Acc)|escape_trace_data(Final)]. |
|
202 |
||
194 |
203 |
log_decision(File, DecisionID) -> |
195 |
204 |
io:format(File, "{decision, ~p}.~n", [DecisionID]). |
196 |
205 |
