Skip to content

Commit

Permalink
Revert "Revert "Fix""
Browse files Browse the repository at this point in the history
This reverts commit f9a5309.
  • Loading branch information
bjorng committed Aug 18, 2023
1 parent cbe7ccf commit 68e36fb
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 2 deletions.
28 changes: 26 additions & 2 deletions lib/asn1/src/asn1ct_check.erl
Original file line number Diff line number Diff line change
Expand Up @@ -3556,8 +3556,32 @@ range_union_1([]) ->
%%% {'SingleValue',[integer()]} | {'ValueRange',Lb,Ub}
%%%

finish_constraints(Cs) ->
finish_constraints_1(Cs, fun smart_collapse/1).
finish_constraints(Cs0) ->
{Cs1,Ext} = blurf(Cs0, none, []),
Cs = finish_constraints_1(Cs1, fun smart_collapse/1),
case Ext of
none -> Cs;
_ -> blarf(Cs, Ext)
end.

blurf([{element_set,{'SizeConstraint',_}=Root,{set,Set}}|Cs], _Ext, Acc) ->
blurf(Cs, Set, [{element_set,Root,none}|Acc]);
blurf([C|Cs], Ext, Acc) ->
blurf(Cs, Ext, [C|Acc]);
blurf([], Ext, Acc) ->
{lists:reverse(Acc),Ext}.

blarf([{'SizeConstraint'=Tag,C}|Cs], Ext) ->
case Ext of
none ->
[{Tag,C}|blarf(Cs, Ext)];
_ ->
[{Tag,{C,Ext}}|blarf(Cs, Ext)]
end;
blarf([C|Cs], Ext) ->
[C|blarf(Cs, Ext)];
blarf([], _Ext) ->
[].

finish_constraints_1([{element_set,{Tag,{element_set,_,_}=Set0},none}|T],
Collapse0) ->
Expand Down
4 changes: 4 additions & 0 deletions lib/asn1/src/asn1ct_constructed_per.erl
Original file line number Diff line number Diff line change
Expand Up @@ -731,6 +731,10 @@ gen_decode_sof(Erules, Typename, SeqOrSetOf, #type{}=D) ->
emit([".",nl,nl]).

do_gen_decode_sof(Erules, TypeName, SeqOrSetOf, D) ->
%% io:format("~p\n", [D]),
%% io:format("~p\n", [D#type.constraint]),
%% io:format("~p\n", [asn1ct_imm:effective_constraint(bitstring, D#type.constraint)]),
%% io:nl(),
case asn1ct_imm:effective_constraint(bitstring, D#type.constraint) of
no ->
%% Could be fragmented.
Expand Down

0 comments on commit 68e36fb

Please sign in to comment.