diff options
author | vlm <vlm@59561ff5-6e30-0410-9f3c-9617f08c8826> | 2004-10-31 00:11:50 +0000 |
---|---|---|
committer | vlm <vlm@59561ff5-6e30-0410-9f3c-9617f08c8826> | 2004-10-31 00:11:50 +0000 |
commit | 7972927fbc1f7a0bcfa9b49d5f060afc054e9eaa (patch) | |
tree | b923edbed9dc34e7b7fae7b103d733a06636aaab /libasn1fix | |
parent | 8e1d2fc0f68b9cbf6f6ef390600c1835842eea76 (diff) |
removed order dependency in DEFAULT references
git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@577 59561ff5-6e30-0410-9f3c-9617f08c8826
Diffstat (limited to 'libasn1fix')
-rw-r--r-- | libasn1fix/asn1fix.c | 6 | ||||
-rw-r--r-- | libasn1fix/asn1fix_derefv.c | 12 | ||||
-rw-r--r-- | libasn1fix/asn1fix_derefv.h | 2 |
3 files changed, 20 insertions, 0 deletions
diff --git a/libasn1fix/asn1fix.c b/libasn1fix/asn1fix.c index 33123fc2..7bfb9034 100644 --- a/libasn1fix/asn1fix.c +++ b/libasn1fix/asn1fix.c @@ -262,6 +262,12 @@ asn1f_fix_module__phase_2(arg_t *arg) { continue; /* + * Dereference DEFAULT values. + */ + ret = asn1f_recurse_expr(arg, asn1f_fix_dereference_defaults); + RET2RVAL(ret, rvalue); + + /* * Check semantic validity of constraints. */ ret = asn1f_recurse_expr(arg, asn1f_check_constraints); diff --git a/libasn1fix/asn1fix_derefv.c b/libasn1fix/asn1fix_derefv.c index eb67ac3f..261425c8 100644 --- a/libasn1fix/asn1fix_derefv.c +++ b/libasn1fix/asn1fix_derefv.c @@ -15,6 +15,18 @@ asn1f_fix_dereference_values(arg_t *arg) { } } + return r_value; +} + + +/* + * Dereference DEFAULT values + */ +int +asn1f_fix_dereference_defaults(arg_t *arg) { + asn1p_expr_t *expr = arg->expr; + int r_value = 0; + if(expr->marker.default_value) { arg_t tmparg = *arg; asn1p_expr_t tmpexpr = *expr; diff --git a/libasn1fix/asn1fix_derefv.h b/libasn1fix/asn1fix_derefv.h index 93153851..3964f539 100644 --- a/libasn1fix/asn1fix_derefv.h +++ b/libasn1fix/asn1fix_derefv.h @@ -3,4 +3,6 @@ int asn1f_fix_dereference_values(arg_t *); +int asn1f_fix_dereference_defaults(arg_t *); + #endif /* _ASN1FIX_DEREFV_H_ */ |