constraint groking code
diff --git a/libasn1fix/asn1fix_export.c b/libasn1fix/asn1fix_export.c
index d6bb37b..cdae650 100644
--- a/libasn1fix/asn1fix_export.c
+++ b/libasn1fix/asn1fix_export.c
@@ -1,6 +1,9 @@
#include "asn1fix_internal.h"
#include "asn1fix_export.h"
+extern arg_t a1f_replace_me_with_proper_interface_arg;
+
+
asn1p_expr_t *
asn1f_lookup_symbol_ex(
asn1p_t *asn,
@@ -14,6 +17,9 @@
arg.asn = asn;
arg.mod = *module_rw;
arg.expr = expr;
+ arg.eh = a1f_replace_me_with_proper_interface_arg.eh;
+ arg.debug = a1f_replace_me_with_proper_interface_arg.debug;
+
return asn1f_lookup_symbol(&arg, ref, module_rw);
}
@@ -24,11 +30,15 @@
asn1p_expr_t *expr,
asn1p_ref_t *ref,
asn1p_module_t **mod_r) {
- static arg_t arg;
+ arg_t arg;
+
+ memset(&arg, 0, sizeof(arg));
arg.asn = asn;
arg.mod = mod;
arg.expr = expr;
+ arg.eh = a1f_replace_me_with_proper_interface_arg.eh;
+ arg.debug = a1f_replace_me_with_proper_interface_arg.debug;
return asn1f_class_access(&arg, ref, mod_r);
}
@@ -38,11 +48,32 @@
asn1p_module_t *mod,
asn1p_expr_t *expr,
asn1p_module_t **mod_r) {
- static arg_t arg;
+ arg_t arg;
+
+ memset(&arg, 0, sizeof(arg));
arg.asn = asn;
arg.mod = mod;
arg.expr = expr;
+ arg.eh = a1f_replace_me_with_proper_interface_arg.eh;
+ arg.debug = a1f_replace_me_with_proper_interface_arg.debug;
return asn1f_find_terminal_type(&arg, expr, mod_r);
}
+
+int
+asn1f_fix_dereference_values_ex(asn1p_t *asn, asn1p_module_t *mod,
+ asn1p_expr_t *expr) {
+ arg_t arg;
+
+ memset(&arg, 0, sizeof(arg));
+
+ arg.asn = asn;
+ arg.mod = mod;
+ arg.expr = expr;
+ arg.eh = a1f_replace_me_with_proper_interface_arg.eh;
+ arg.debug = a1f_replace_me_with_proper_interface_arg.debug;
+
+ return asn1f_fix_dereference_values(&arg);
+}
+