deeper validation
git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@847 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/libasn1compiler/asn1c_C.c b/libasn1compiler/asn1c_C.c
index 7d66b1b..a2a09f2 100644
--- a/libasn1compiler/asn1c_C.c
+++ b/libasn1compiler/asn1c_C.c
@@ -1067,7 +1067,7 @@
OUT("td->elements_count = asn_DEF_%s.elements_count;\n", type_name);
if(etd_spec != ETD_NO_SPECIFICS) {
INDENT(-1);
- OUT(" /* ");
+ OUT(" /* ");
}
OUT("td->specifics = asn_DEF_%s.specifics;", type_name);
if(etd_spec == ETD_NO_SPECIFICS) {
diff --git a/libasn1compiler/asn1c_constraint.c b/libasn1compiler/asn1c_constraint.c
index 0729d08..7809783 100644
--- a/libasn1compiler/asn1c_constraint.c
+++ b/libasn1compiler/asn1c_constraint.c
@@ -170,8 +170,17 @@
INDENT(-1);
OUT(") {\n");
INDENT(+1);
- OUT("/* Constraint check succeeded */\n");
- OUT("return 0;\n");
+ switch(etype) {
+ case ASN_CONSTR_SEQUENCE_OF:
+ OUT("/* SEQUENCE validation code is the same as SET */\n");
+ case ASN_CONSTR_SET_OF:
+ OUT("/* Perform validation of the inner elements */\n");
+ OUT("return SET_OF_constraint(td, list, app_errlog, app_key);\n");
+ break;
+ default:
+ OUT("/* Constraint check succeeded */\n");
+ OUT("return 0;\n");
+ }
INDENT(-1);
OUT("} else {\n");
INDENT(+1);