diff options
author | Lev Walkin <vlm@lionet.info> | 2004-08-25 02:03:59 +0000 |
---|---|---|
committer | Lev Walkin <vlm@lionet.info> | 2004-08-25 02:03:59 +0000 |
commit | be717ecc316a9e2c6785cca0e84f49a41192b98e (patch) | |
tree | a08a43c4b918ee1bf910a219167764320caece64 | |
parent | 0e22b981aaaa4380937963f0190df137b5326fa5 (diff) |
better semantics
-rw-r--r-- | libasn1compiler/asn1c_constraint.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/libasn1compiler/asn1c_constraint.c b/libasn1compiler/asn1c_constraint.c index 36b27758..beb87456 100644 --- a/libasn1compiler/asn1c_constraint.c +++ b/libasn1compiler/asn1c_constraint.c @@ -33,11 +33,10 @@ asn1c_emit_constraint_checking_code(arg_t *arg) { etype = _find_terminal_type(arg); - r_value=asn1constraint_compute_PER_range(etype, ct, ACT_EL_RANGE, 0, 0); - r_size = asn1constraint_compute_PER_range(etype, ct, ACT_CT_SIZE, 0, 0); + r_value=asn1constraint_compute_PER_range(etype, ct, ACT_EL_RANGE,0,0,0); + r_size = asn1constraint_compute_PER_range(etype, ct, ACT_CT_SIZE,0,0,0); if(r_value) { - if(r_value->not_PER_visible - || r_value->extensible + if(r_value->incompatible || r_value->empty_constraint || (r_value->left.type == ARE_MIN && r_value->right.type == ARE_MAX) @@ -50,8 +49,7 @@ asn1c_emit_constraint_checking_code(arg_t *arg) { } } if(r_size) { - if(r_size->not_PER_visible - || r_size->extensible + if(r_size->incompatible || r_size->empty_constraint || (r_size->left.value == 0 /* or .type == MIN */ && r_size->right.type == ARE_MAX) @@ -200,11 +198,10 @@ asn1c_emit_constraint_tables(arg_t *arg, int got_size) { etype = _find_terminal_type(arg); - range = asn1constraint_compute_PER_range(etype, ct, ACT_CT_FROM, 0, 0); + range = asn1constraint_compute_PER_range(etype, ct, ACT_CT_FROM, 0,0,0); if(!range) return 0; - if(range->not_PER_visible - || range->extensible + if(range->incompatible || range->empty_constraint) { asn1constraint_range_free(range); return 0; |