aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1/src/asn1ct_constructed_per.erl
diff options
context:
space:
mode:
authorBjörn-Egil Dahlberg <[email protected]>2011-05-20 15:32:12 +0200
committerBjörn-Egil Dahlberg <[email protected]>2011-05-20 15:32:12 +0200
commitf51fe0b00300082fe2a937c4575afedd9e113afa (patch)
treebe8e5f24120fa65d6dc50ccae657712a5b1334b2 /lib/asn1/src/asn1ct_constructed_per.erl
parent6c6ea3ebe1e031520bf5bf8808c595b935a4b3bc (diff)
parent577f5ca0d34793c8a1c502f3e4221e43929b3e33 (diff)
downloadotp-f51fe0b00300082fe2a937c4575afedd9e113afa.tar.gz
otp-f51fe0b00300082fe2a937c4575afedd9e113afa.tar.bz2
otp-f51fe0b00300082fe2a937c4575afedd9e113afa.zip
Merge branch 'kenneth/asn1/longlength/OTP-9303' into dev
* kenneth/asn1/longlength/OTP-9303: Fixed DRIVER_INIT prototype Corrected handling of long length in driver and updated test suites
Diffstat (limited to 'lib/asn1/src/asn1ct_constructed_per.erl')
-rw-r--r--lib/asn1/src/asn1ct_constructed_per.erl9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/asn1/src/asn1ct_constructed_per.erl b/lib/asn1/src/asn1ct_constructed_per.erl
index d6f23aca06..c1b6aa5713 100644
--- a/lib/asn1/src/asn1ct_constructed_per.erl
+++ b/lib/asn1/src/asn1ct_constructed_per.erl
@@ -1,7 +1,7 @@
%%
%% %CopyrightBegin%
%%
-%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
+%% Copyright Ericsson AB 1997-2011. All Rights Reserved.
%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
@@ -255,7 +255,7 @@ gen_decode_constructed(Erules,Typename,D) when is_record(D,type) ->
_ -> false
end
end,
- case lists:any(F,CompList) of
+ case lists:any(F,flat_complist(CompList)) of
true -> % when component relation constraint establish
%% relation from a component to another components
%% subtype component
@@ -1493,6 +1493,11 @@ emit_extaddgroupTerms(VarSeries,[_|Rest]) ->
emit_extaddgroupTerms(VarSeries,Rest);
emit_extaddgroupTerms(_,[]) ->
ok.
+
+flat_complist({Rl1,El,Rl2}) -> Rl1 ++ El ++ Rl2;
+flat_complist({Rl,El}) -> Rl ++ El;
+flat_complist(CompList) -> CompList.
+
wrap_compList({Root1,Ext,Root2}) ->
{Root1,wrap_extensionAdditionGroups(Ext),Root2};
wrap_compList({Root1,Ext}) ->