basho / webmachine (http://webmachine.basho.com/)

A REST-based system for building web applications.

Clone this repository (size: 1.8 MB): HTTPS / SSH
$ hg clone http://hg.basho.com/webmachine
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)
Bry...@basho.com>
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
    [ escape_trace_data(E) || E <- List ];
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