From 5b96f21257c1782af5ee8c58f5c726f91ba56c83 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= <bjorn@erlang.org>
Date: Thu, 5 Sep 2013 07:38:39 +0200
Subject: asn1ct_parser2: Clean the process dictionary after parsing

Apart from cleanliness, the test suite runs many tests cases in
parallel, so it never hurts to reduce the memory pressure.
---
 lib/asn1/src/asn1ct_parser2.erl | 8 ++++++++
 1 file changed, 8 insertions(+)

(limited to 'lib/asn1/src')

diff --git a/lib/asn1/src/asn1ct_parser2.erl b/lib/asn1/src/asn1ct_parser2.erl
index 1abccc8626..283616b157 100644
--- a/lib/asn1/src/asn1ct_parser2.erl
+++ b/lib/asn1/src/asn1ct_parser2.erl
@@ -38,6 +38,7 @@ parse(Tokens) ->
 	    {error,{Reason,hd(Tokens)}};
 	{ModuleDefinition,Rest1} ->
 	    {Types,Rest2} = parse_AssignmentList(Rest1),
+	    clean_process_dictionary(),
 	    case Rest2 of
 		[{'END',_}|_Rest3] ->
 		    {ok,ModuleDefinition#module{typeorval = Types}};
@@ -48,6 +49,13 @@ parse(Tokens) ->
 	    end
     end.
 
+clean_process_dictionary() ->
+    Mod = erase(asn1_module),
+    _ = erase({Mod,imports}),
+    _ = erase(tagdefault),
+    _ = erase(extensiondefault),
+    ok.
+
 parse_ModuleDefinition([{typereference,L1,ModuleIdentifier}|Rest0]) ->
     put(asn1_module,ModuleIdentifier),
     {_DefinitiveIdentifier,Rest02} = 
-- 
cgit v1.2.3