diff options
author | Björn Gustavsson <[email protected]> | 2012-12-10 17:34:12 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2012-12-18 14:46:02 +0100 |
commit | d790477de9e128b1931df655a760083de0c6125c (patch) | |
tree | 7bf79cce60b545ccdbf2e8435b00e515def421f9 /lib/asn1/src | |
parent | a5567554dd98b37c1d0ecbb52fdb4f55a93a1cf8 (diff) | |
download | otp-d790477de9e128b1931df655a760083de0c6125c.tar.gz otp-d790477de9e128b1931df655a760083de0c6125c.tar.bz2 otp-d790477de9e128b1931df655a760083de0c6125c.zip |
Fix a bug in skipping of extensions
Extensions following a double bracket group were not skipped correctly.
Fix this bug and add tests to ensure that extensions are skipped
correctly.
Diffstat (limited to 'lib/asn1/src')
-rw-r--r-- | lib/asn1/src/asn1ct_constructed_per.erl | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/asn1/src/asn1ct_constructed_per.erl b/lib/asn1/src/asn1ct_constructed_per.erl index b29a7b3048..4ec34da019 100644 --- a/lib/asn1/src/asn1ct_constructed_per.erl +++ b/lib/asn1/src/asn1ct_constructed_per.erl @@ -1099,10 +1099,11 @@ gen_dec_components_call(Erule,TopType,CL={Root1,ExtList,Root2}, {EmitExts,_} = gen_dec_comp_calls(NewExtList, Erule, TopType, OptTable, DecInfObj, Ext, NumberOfOptionals, Tpos, []), + NumExtsToSkip = ext_length(ExtList), Finish = fun(St) -> emit([{next,bytes},"= ?RT_PER:skipextensions(",{curr,bytes},",", - length(ExtList)+1,",Extensions)"]), + NumExtsToSkip+1,",Extensions)"]), asn1ct_name:new(bytes), St end, |